From: Alvaro Herrera Date: Mon, 19 Aug 2024 00:49:57 +0000 (-0400) Subject: Search for SLRU page only in its own bank X-Git-Tag: REL_17_RC1~41 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=fad0da271e006015fcc25724aca2871d6dec04f5;p=postgresql.git Search for SLRU page only in its own bank One of the two slot scans in SlruSelectLRUPage was not walking only the slots in the specific bank where the buffer could be; change it to do that. Oversight in 53c2a97a9266. Author: Sergey Sargsyan Discussion: https://postgr.es/m/18582-5f301dd30ba91a38@postgresql.org --- diff --git a/src/backend/access/transam/slru.c b/src/backend/access/transam/slru.c index 248aa1a6553..27473009b00 100644 --- a/src/backend/access/transam/slru.c +++ b/src/backend/access/transam/slru.c @@ -1184,7 +1184,7 @@ SlruSelectLRUPage(SlruCtl ctl, int64 pageno) Assert(LWLockHeldByMe(SimpleLruGetBankLock(ctl, pageno))); /* See if page already has a buffer assigned */ - for (int slotno = 0; slotno < shared->num_slots; slotno++) + for (int slotno = bankstart; slotno < bankend; slotno++) { if (shared->page_status[slotno] != SLRU_PAGE_EMPTY && shared->page_number[slotno] == pageno)