diff options
author | Thomas Munro <tmunro@postgresql.org> | 2020-09-24 09:26:09 +1200 |
---|---|---|
committer | Thomas Munro <tmunro@postgresql.org> | 2020-09-24 10:36:27 +1200 |
commit | 23d8b3577d0c247731addc188fe0479aa8f81c45 (patch) | |
tree | 99efe0bd46e178a1f3a88763f4ce94952a16168e | |
parent | 61cfd90621d6c40ada0d0f8a7ca68bf564bf983d (diff) | |
download | postgresql-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.c | 4 |
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); } /* |