0001-Invalidate-smgr_targblock-on-release.patch

text/x-patch

Filename: 0001-Invalidate-smgr_targblock-on-release.patch
Type: text/x-patch
Part: 0
Message: Extending SMgrRelation lifetimes

Patch

Format: format-patch
Series: patch 0001
Subject: Invalidate smgr_targblock on release.
File+
src/backend/storage/smgr/smgr.c 1 0
From 844e56e9ea9a56e04813886a6f7ded19a3af7f90 Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@gmail.com>
Date: Mon, 14 Aug 2023 11:01:28 +1200
Subject: [PATCH 1/2] Invalidate smgr_targblock on release.

In rare circumstances involving relfilenode reuse, it may be possible
for smgr_targblock to finish up pointing past the end.

Oversight in b74e94dc.  Back-patch to 15.
---
 src/backend/storage/smgr/smgr.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/backend/storage/smgr/smgr.c b/src/backend/storage/smgr/smgr.c
index f76c4605db..65e7436306 100644
--- a/src/backend/storage/smgr/smgr.c
+++ b/src/backend/storage/smgr/smgr.c
@@ -295,6 +295,7 @@ smgrrelease(SMgrRelation reln)
 	{
 		smgrsw[reln->smgr_which].smgr_close(reln, forknum);
 		reln->smgr_cached_nblocks[forknum] = InvalidBlockNumber;
+		reln->smgr_targblock = InvalidBlockNumber;
 	}
 }
 
-- 
2.39.2