0001-Fix-recovering-damaged-FSM-pages.patch
text/x-patch
Filename: 0001-Fix-recovering-damaged-FSM-pages.patch
Type: text/x-patch
Part: 0
Patch
Same data as JSON:
GET /api/v1/attachments/:id/patch
the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes.
API reference →
Format: format-patch
Series: patch 0001
Subject: Mark buffer dirty for FSM pages that were newly inited. E.g. after zeroing damaged pages.
| File | + | − |
|---|---|---|
| src/backend/storage/freespace/freespace.c | 3 | 0 |
From 99f0ab536f180a1c5a57246e0929acfeb915d88e Mon Sep 17 00:00:00 2001
From: "Anton A. Melnikov" <a.melnikov@postgrespro.ru>
Date: Fri, 7 Feb 2025 02:57:34 +0300
Subject: [PATCH] Mark buffer dirty for FSM pages that were newly inited. E.g.
after zeroing damaged pages.
---
src/backend/storage/freespace/freespace.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/backend/storage/freespace/freespace.c b/src/backend/storage/freespace/freespace.c
index 4773a9cc65e..a6479977c6d 100644
--- a/src/backend/storage/freespace/freespace.c
+++ b/src/backend/storage/freespace/freespace.c
@@ -614,7 +614,10 @@ fsm_readbuf(Relation rel, FSMAddress addr, bool extend)
{
LockBuffer(buf, BUFFER_LOCK_EXCLUSIVE);
if (PageIsNew(BufferGetPage(buf)))
+ {
PageInit(BufferGetPage(buf), BLCKSZ, 0);
+ MarkBufferDirty(buf);
+ }
LockBuffer(buf, BUFFER_LOCK_UNLOCK);
}
return buf;
--
2.48.1