summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThomas Munro <tmunro@postgresql.org>2020-09-24 09:26:09 +1200
committerThomas Munro <tmunro@postgresql.org>2020-09-24 10:35:10 +1200
commitd38e15979ba484380cc3c54648e4985d44fb0b5e (patch)
tree37a0cb344667239f0737bb06e202c472e1228665 /src
parentb1fbb7d08f22290d63d7918274d55a5b8e364be3 (diff)
Fix missing fsync of SLRU directories.
Harmonize behavior by moving reponsibility for fsyncing directories down into slru.c. In 10 and later, only the multixact directories were missed (see commit 1b02be21), and in older branches all SLRUs were missed. Back-patch to all supported releases. Reviewed-by: Andres Freund <andres@anarazel.de> Reviewed-by: Michael Paquier <michael@paquier.xyz> Discussion: https://postgr.es/m/CA%2BhUKGLtsTUOScnNoSMZ-2ZLv%2BwGh01J6kAo_DM8mTRq1sKdSQ%40mail.gmail.com
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/transam/slru.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/backend/access/transam/slru.c b/src/backend/access/transam/slru.c
index 1f656844917..68b4fb71724 100644
--- a/src/backend/access/transam/slru.c
+++ b/src/backend/access/transam/slru.c
@@ -1150,6 +1150,10 @@ SimpleLruFlush(SlruCtl ctl, bool allow_redirtied)
}
if (!ok)
SlruReportIOError(ctl, pageno, InvalidTransactionId);
+
+ /* Ensure that directory entries for new files are on disk. */
+ if (ctl->do_fsync)
+ fsync_fname(ctl->Dir, true);
}
/*