summaryrefslogtreecommitdiff
path: root/src/backend/postmaster/bgwriter.c
diff options
context:
space:
mode:
authorSimon Riggs2012-06-01 08:24:53 +0000
committerSimon Riggs2012-06-01 08:24:53 +0000
commit055c352abbf764a08496e94054137da9e26dac04 (patch)
tree498c69122a13e44fc59a3b913bea47259a291a30 /src/backend/postmaster/bgwriter.c
parenta297d64d9223f6bd9c495ff5726a3c99080c2a4a (diff)
After any checkpoint, close all smgr files handles in bgwriter
Diffstat (limited to 'src/backend/postmaster/bgwriter.c')
-rw-r--r--src/backend/postmaster/bgwriter.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/backend/postmaster/bgwriter.c b/src/backend/postmaster/bgwriter.c
index 9ad7178aeb8..32c254c8420 100644
--- a/src/backend/postmaster/bgwriter.c
+++ b/src/backend/postmaster/bgwriter.c
@@ -276,6 +276,15 @@ BackgroundWriterMain(void)
*/
pgstat_send_bgwriter();
+ if (FirstCallSinceLastCheckpoint())
+ {
+ /*
+ * After any checkpoint, close all smgr files. This is so we
+ * won't hang onto smgr references to deleted files indefinitely.
+ */
+ smgrcloseall();
+ }
+
/*
* Sleep until we are signaled or BgWriterDelay has elapsed.
*