diff options
Diffstat (limited to 'src/bin/pg_dump/pg_backup_directory.c')
-rw-r--r-- | src/bin/pg_dump/pg_backup_directory.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/bin/pg_dump/pg_backup_directory.c b/src/bin/pg_dump/pg_backup_directory.c index 0d7322f73a7..79922da8ba3 100644 --- a/src/bin/pg_dump/pg_backup_directory.c +++ b/src/bin/pg_dump/pg_backup_directory.c @@ -37,6 +37,7 @@ #include "compress_io.h" #include "parallel.h" #include "pg_backup_utils.h" +#include "common/file_utils.h" #include <dirent.h> #include <sys/stat.h> @@ -593,6 +594,13 @@ _CloseArchive(ArchiveHandle *AH) WriteDataChunks(AH, ctx->pstate); ParallelBackupEnd(AH, ctx->pstate); + + /* + * In directory mode, there is no need to sync all the entries + * individually. Just recurse once through all the files generated. + */ + if (AH->dosync) + fsync_dir_recurse(ctx->directory, progname); } AH->FH = NULL; } |