aboutsummaryrefslogtreecommitdiff
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:36:27 +1200
commit23d8b3577d0c247731addc188fe0479aa8f81c45 (patch)
tree99efe0bd46e178a1f3a88763f4ce94952a16168e
parent61cfd90621d6c40ada0d0f8a7ca68bf564bf983d (diff)
downloadpostgresql-23d8b3577d0c247731addc188fe0479aa8f81c45.tar.gz
postgresql-23d8b3577d0c247731addc188fe0479aa8f81c45.zip
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
-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 680a28f198d..b4d551fc33a 100644
--- a/src/backend/access/transam/slru.c
+++ b/src/backend/access/transam/slru.c
@@ -1133,6 +1133,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);
}
/*