diff options
author | Andrew Dunstan <andrew@dunslane.net> | 2017-03-22 10:00:30 -0400 |
---|---|---|
committer | Andrew Dunstan <andrew@dunslane.net> | 2017-03-22 10:20:13 -0400 |
commit | 96a7128b7b4c9ce4fb51df8c8b216dfab6340766 (patch) | |
tree | 900964e96eebe58df9033f698506293056a49530 /src/bin/pg_dump/pg_backup_tar.c | |
parent | 9b013dc238cefa2860b384a3fa016ad1ceb062e4 (diff) |
Sync pg_dump and pg_dumpall output
Before exiting any files are fsync'ed. A --no-sync option is also
provided for a faster exit if desired.
Michael Paquier.
Reviewed by Albe Laurenz
Discussion: https://postgr.es/m/CAB7nPqS1uZ=Ov+UruW6jr3vB-S_DLVMPc0dQpV-fTDjmm0ZQMg@mail.gmail.com
Diffstat (limited to 'src/bin/pg_dump/pg_backup_tar.c')
-rw-r--r-- | src/bin/pg_dump/pg_backup_tar.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/bin/pg_dump/pg_backup_tar.c b/src/bin/pg_dump/pg_backup_tar.c index 9cadd0c4a45..a2b320f3710 100644 --- a/src/bin/pg_dump/pg_backup_tar.c +++ b/src/bin/pg_dump/pg_backup_tar.c @@ -33,6 +33,7 @@ #include "pg_backup_tar.h" #include "pg_backup_utils.h" #include "pgtar.h" +#include "common/file_utils.h" #include "fe_utils/string_utils.h" #include <sys/stat.h> @@ -901,6 +902,10 @@ _CloseArchive(ArchiveHandle *AH) if (fputc(0, ctx->tarFH) == EOF) WRITE_ERROR_EXIT; } + + /* Sync the output file if one is defined */ + if (AH->dosync && AH->fSpec) + (void) fsync_fname(AH->fSpec, false, progname); } AH->FH = NULL; |