fsync backup_label after pg_start_backup()
authorSimon Riggs <simon@2ndQuadrant.com>
Tue, 7 Aug 2012 15:19:13 +0000 (16:19 +0100)
committerSimon Riggs <simon@2ndQuadrant.com>
Tue, 7 Aug 2012 15:19:13 +0000 (16:19 +0100)
Dave Kerr

src/backend/access/transam/xlog.c

index a73cd6b9dec1a44f37842627e6c46cf3c05d3112..efd0347bc9bbd8f714ac07042114465416fccdf8 100644 (file)
@@ -9346,6 +9346,7 @@ do_pg_start_backup(const char *backupidstr, bool fast, char **labelfile)
                                BACKUP_LABEL_FILE)));
            if (fwrite(labelfbuf.data, labelfbuf.len, 1, fp) != 1 ||
                fflush(fp) != 0 ||
+               pg_fsync(fileno(fp)) != 0 ||
                ferror(fp) ||
                FreeFile(fp))
                ereport(ERROR,