1
0
mirror of https://github.com/postgres/postgres.git synced 2025-04-22 23:02:54 +03:00

Assert that buffer is pinned in LockBuffer().

Strengthen the LockBuffer() assertion that verifies BufferIsValid() by
making it verify BufferIsPinned() instead.  Do the same in nearby
related functions.

There is probably not much chance that anybody will try to lock a buffer
that is not already pinned, but we might as well make sure of that.
This commit is contained in:
Peter Geoghegan 2020-07-20 16:03:38 -07:00
parent 0fa0b487b5
commit 6ca7cd89a2

View File

@ -3743,7 +3743,7 @@ LockBuffer(Buffer buffer, int mode)
{
BufferDesc *buf;
Assert(BufferIsValid(buffer));
Assert(BufferIsPinned(buffer));
if (BufferIsLocal(buffer))
return; /* local buffers need no lock */
@ -3769,7 +3769,7 @@ ConditionalLockBuffer(Buffer buffer)
{
BufferDesc *buf;
Assert(BufferIsValid(buffer));
Assert(BufferIsPinned(buffer));
if (BufferIsLocal(buffer))
return true; /* act as though we got it */
@ -3801,7 +3801,7 @@ LockBufferForCleanup(Buffer buffer)
BufferDesc *bufHdr;
char *new_status = NULL;
Assert(BufferIsValid(buffer));
Assert(BufferIsPinned(buffer));
Assert(PinCountWaitBuf == NULL);
if (BufferIsLocal(buffer))