diff options
Diffstat (limited to 'src/backend/storage/buffer/bufmgr.c')
-rw-r--r-- | src/backend/storage/buffer/bufmgr.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c index f3c27d7e77a..79ca9d18d07 100644 --- a/src/backend/storage/buffer/bufmgr.c +++ b/src/backend/storage/buffer/bufmgr.c @@ -1038,7 +1038,7 @@ ZeroAndLockBuffer(Buffer buffer, ReadBufferMode mode, bool already_valid) { /* Simple case for non-shared buffers. */ bufHdr = GetLocalBufferDescriptor(-buffer - 1); - need_to_zero = (pg_atomic_read_u32(&bufHdr->state) & BM_VALID) == 0; + need_to_zero = StartLocalBufferIO(bufHdr, true); } else { @@ -1388,11 +1388,7 @@ static inline bool WaitReadBuffersCanStartIO(Buffer buffer, bool nowait) { if (BufferIsLocal(buffer)) - { - BufferDesc *bufHdr = GetLocalBufferDescriptor(-buffer - 1); - - return (pg_atomic_read_u32(&bufHdr->state) & BM_VALID) == 0; - } + return StartLocalBufferIO(GetLocalBufferDescriptor(-buffer - 1), true); else return StartBufferIO(GetBufferDescriptor(buffer - 1), true, nowait); } |