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++;
 	}
 
