From 48089e678b425291442f4dc14d87ca25c524f65f Mon Sep 17 00:00:00 2001
From: Satyanarayana Narlapuram <satyanarlapuram@gmail.com>
Date: Tue, 14 Apr 2026 00:09:44 +0000
Subject: [PATCH] Fix checkpointer PANIC due to missing fsync cancel in
 mdunlinkfork()

Add missing register_forget_request() in the 'else' branch of
mdunlinkfork(), before register_unlink_segment(), matching what the
'if' branch already does.
---
 src/backend/storage/smgr/md.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/backend/storage/smgr/md.c b/src/backend/storage/smgr/md.c
index dee2903..d715307 100644
--- a/src/backend/storage/smgr/md.c
+++ b/src/backend/storage/smgr/md.c
@@ -419,6 +419,11 @@ mdunlinkfork(RelFileLocatorBackend rlocator, ForkNumber forknum, bool isRedo)
 		/* Prevent other backends' fds from holding on to the disk space */
 		ret = do_truncate(path.str);
 
+		/* Forget any pending sync requests for the first segment */
+		save_errno = errno;
+		register_forget_request(rlocator, forknum, 0 /* first seg */ );
+		errno = save_errno;
+
 		/* Register request to unlink first segment later */
 		save_errno = errno;
 		register_unlink_segment(rlocator, forknum, 0 /* first seg */ );
-- 
2.43.0

