Index: contrib/pgstattuple/pgstattuple.c =================================================================== --- contrib/pgstattuple/pgstattuple.c (HEAD) +++ contrib/pgstattuple/pgstattuple.c (working copy) @@ -291,8 +291,7 @@ buffer = ReadBuffer(rel, block); LockBuffer(buffer, BUFFER_LOCK_SHARE); stat.free_space += PageGetHeapFreeSpace((Page) BufferGetPage(buffer)); - LockBuffer(buffer, BUFFER_LOCK_UNLOCK); - ReleaseBuffer(buffer); + UnlockReleaseBuffer(buffer); block++; } } @@ -301,8 +300,9 @@ while (block < nblocks) { buffer = ReadBuffer(rel, block); + LockBuffer(buffer, BUFFER_LOCK_SHARE); stat.free_space += PageGetHeapFreeSpace((Page) BufferGetPage(buffer)); - ReleaseBuffer(buffer); + UnlockReleaseBuffer(buffer); block++; }