From df5c1c1463ef9c0777b29b609867b149a1b4aca3 Mon Sep 17 00:00:00 2001 From: cca5507 Date: Thu, 23 May 2024 17:38:04 +0800 Subject: [PATCH] fix codecheck failed --- .../storage/access/redo/redo_xlogutils.cpp | 56 +++++++++---------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/src/gausskernel/storage/access/redo/redo_xlogutils.cpp b/src/gausskernel/storage/access/redo/redo_xlogutils.cpp index 6fb630b60..af3de3b2c 100644 --- a/src/gausskernel/storage/access/redo/redo_xlogutils.cpp +++ b/src/gausskernel/storage/access/redo/redo_xlogutils.cpp @@ -1709,37 +1709,35 @@ void ExtremeRtoFlushBuffer(RedoBufferInfo *bufferinfo, bool updateFsm) } /* release buffer */ XLogRedoBufferReleaseFunc(bufferinfo->buf); - } else { - if (bufferinfo->pageinfo.page != NULL) { - BufferDesc *bufDesc = GetBufferDescriptor(bufferinfo->buf - 1); - if (bufferinfo->dirtyflag || XLByteLT(bufDesc->extra->lsn_on_disk, PageGetLSN(bufferinfo->pageinfo.page))) { - /* backends may mark buffer dirty already */ - if (!(bufDesc->state & BM_DIRTY)) { - MarkBufferDirty(bufferinfo->buf); - } - if (!bufferinfo->dirtyflag && bufferinfo->blockinfo.forknum == MAIN_FORKNUM) { - int mode = WARNING; -#ifdef USE_ASSERT_CHECKING - mode = PANIC; -#endif - const uint32 shiftSz = 32; - ereport(mode, (errmsg("extreme_rto not mark dirty:lsn %X/%X, lsn_disk %X/%X, " - "lsn_page %X/%X, page %u/%u/%u %u", - (uint32)(bufferinfo->lsn >> shiftSz), (uint32)(bufferinfo->lsn), - (uint32)(bufDesc->extra->lsn_on_disk >> shiftSz), - (uint32)(bufDesc->extra->lsn_on_disk), - (uint32)(PageGetLSN(bufferinfo->pageinfo.page) >> shiftSz), - (uint32)(PageGetLSN(bufferinfo->pageinfo.page)), - bufferinfo->blockinfo.rnode.spcNode, bufferinfo->blockinfo.rnode.dbNode, - bufferinfo->blockinfo.rnode.relNode, bufferinfo->blockinfo.blkno))); - } -#ifdef USE_ASSERT_CHECKING - bufDesc->lsn_dirty = PageGetLSN(bufferinfo->pageinfo.page); -#endif + } else if (bufferinfo->pageinfo.page != NULL) { + BufferDesc *bufDesc = GetBufferDescriptor(bufferinfo->buf - 1); + if (bufferinfo->dirtyflag || XLByteLT(bufDesc->extra->lsn_on_disk, PageGetLSN(bufferinfo->pageinfo.page))) { + /* backends may mark buffer dirty already */ + if (!(bufDesc->state & BM_DIRTY)) { + MarkBufferDirty(bufferinfo->buf); } - - UnlockReleaseBuffer(bufferinfo->buf); /* release buffer */ + if (!bufferinfo->dirtyflag && bufferinfo->blockinfo.forknum == MAIN_FORKNUM) { + int mode = WARNING; +#ifdef USE_ASSERT_CHECKING + mode = PANIC; +#endif + const uint32 shiftSz = 32; + ereport(mode, (errmsg("extreme_rto not mark dirty:lsn %X/%X, lsn_disk %X/%X, " + "lsn_page %X/%X, page %u/%u/%u %u", + (uint32)(bufferinfo->lsn >> shiftSz), (uint32)(bufferinfo->lsn), + (uint32)(bufDesc->extra->lsn_on_disk >> shiftSz), + (uint32)(bufDesc->extra->lsn_on_disk), + (uint32)(PageGetLSN(bufferinfo->pageinfo.page) >> shiftSz), + (uint32)(PageGetLSN(bufferinfo->pageinfo.page)), + bufferinfo->blockinfo.rnode.spcNode, bufferinfo->blockinfo.rnode.dbNode, + bufferinfo->blockinfo.rnode.relNode, bufferinfo->blockinfo.blkno))); + } +#ifdef USE_ASSERT_CHECKING + bufDesc->lsn_dirty = PageGetLSN(bufferinfo->pageinfo.page); +#endif } + + UnlockReleaseBuffer(bufferinfo->buf); /* release buffer */ } SSMarkBufferDirtyForERTO(bufferinfo);