postgres.git / summary / log / commit / refs
commit efed8c0031dbae0adb4ed4cb6197acd57397d2e9
Author: Simon Riggs <simon@2ndQuadrant.com>
Date: Tue Aug 07 15:21:49 2012 +0000
fsync backup_label after pg_start_backup()
Dave Kerr, backpatched by Simon Riggs
src/backend/access/transam/xlog.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/backend/access/transam/xlog.c b/src/backend/access/transam/xlog.c
index 1612f44e4ec..adf5bc93de5 100644
--- a/src/backend/access/transam/xlog.c
+++ b/src/backend/access/transam/xlog.c
@@ -9093,7 +9093,8 @@ do_pg_start_backup(const char *backupidstr, bool fast, char **labelfile)
errmsg("could not create file \"%s\": %m",
BACKUP_LABEL_FILE)));
fwrite(labelfbuf.data, labelfbuf.len, 1, fp);
- if (fflush(fp) || ferror(fp) || FreeFile(fp))
+
+ if (fflush(fp) || ferror(fp) || pg_fsync(fileno(fp)) != 0 || FreeFile(fp))
ereport(ERROR,
(errcode_for_file_access(),
errmsg("could not write file \"%s\": %m",
[parent: 1c638c80747f]