From 2b1759e2675fc01d6945c9a5fa65c7d7121212f7 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Thu, 29 Mar 2018 12:44:19 -0400 Subject: [PATCH] Remove unnecessary BufferGetPage() calls in fsm_vacuum_page(). Just noticed that these were quite redundant, since we're holding the page address in a local variable anyway, and we have pin on the buffer throughout. Also improve a comment. --- src/backend/storage/freespace/freespace.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/backend/storage/freespace/freespace.c b/src/backend/storage/freespace/freespace.c index fd18c851140..65c4e74999f 100644 --- a/src/backend/storage/freespace/freespace.c +++ b/src/backend/storage/freespace/freespace.c @@ -866,7 +866,7 @@ fsm_vacuum_page(Relation rel, FSMAddress addr, if (fsm_get_avail(page, slot) != child_avail) { LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE); - fsm_set_avail(BufferGetPage(buf), slot, child_avail); + fsm_set_avail(page, slot, child_avail); MarkBufferDirtyHint(buf, false); LockBuffer(buf, BUFFER_LOCK_UNLOCK); } @@ -874,12 +874,13 @@ fsm_vacuum_page(Relation rel, FSMAddress addr, } /* Now get the maximum value on the page, to return to caller */ - max_avail = fsm_get_max_avail(BufferGetPage(buf)); + max_avail = fsm_get_max_avail(page); /* * Reset the next slot pointer. This encourages the use of low-numbered * pages, increasing the chances that a later vacuum can truncate the - * relation. + * relation. We don't bother with a lock here, nor with marking the page + * dirty if it wasn't already, since this is just a hint. */ ((FSMPage) PageGetContents(page))->fp_next_slot = 0;