aboutsummaryrefslogtreecommitdiff
path: root/src/backend/storage/buffer/localbuf.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/storage/buffer/localbuf.c')
-rw-r--r--src/backend/storage/buffer/localbuf.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/backend/storage/buffer/localbuf.c b/src/backend/storage/buffer/localbuf.c
index 1be4f4f8daf..1f02fed250e 100644
--- a/src/backend/storage/buffer/localbuf.c
+++ b/src/backend/storage/buffer/localbuf.c
@@ -374,6 +374,9 @@ ExtendBufferedRelLocal(BufferManagerRelation bmr,
victim_buf_id = -buffers[i] - 1;
victim_buf_hdr = GetLocalBufferDescriptor(victim_buf_id);
+ /* in case we need to pin an existing buffer below */
+ ResourceOwnerEnlarge(CurrentResourceOwner);
+
InitBufferTag(&tag, &bmr.smgr->smgr_rlocator.locator, fork, first_block + i);
hresult = (LocalBufferLookupEnt *)
@@ -646,6 +649,8 @@ InitLocalBuffers(void)
* XXX: We could have a slightly more efficient version of PinLocalBuffer()
* that does not support adjusting the usagecount - but so far it does not
* seem worth the trouble.
+ *
+ * Note that ResourceOwnerEnlarge() must have been done already.
*/
bool
PinLocalBuffer(BufferDesc *buf_hdr, bool adjust_usagecount)