@@ -128,7 +128,6 @@ intCheckPointSegments;
128128/* Estimated distance between checkpoints, in bytes */
129129static double CheckPointDistanceEstimate = 0 ;
130130static double PrevCheckPointDistance = 0 ;
131- static bool SavedGCState = false;
132131
133132/*
134133 * GUC support
@@ -9894,7 +9893,7 @@ do_pg_start_backup(const char *backupidstr, bool fast, TimeLineID *starttli_p,
98949893XLogCtl -> Insert .forcePageWrites = true;
98959894WALInsertLockRelease ();
98969895
9897- SavedGCState = cfs_control_gc (false );/* disable GC during backup */
9896+ cfs_control_gc_lock ( );/* disable GC during backup */
98989897
98999898/* Ensure we release forcePageWrites if fail below */
99009899PG_ENSURE_ERROR_CLEANUP (pg_start_backup_callback , (Datum )BoolGetDatum (exclusive ));
@@ -10273,7 +10272,7 @@ pg_start_backup_callback(int code, Datum arg)
1027310272}
1027410273WALInsertLockRelease ();
1027510274
10276- cfs_control_gc ( SavedGCState );/* Restore CFS GC activity */
10275+ cfs_control_gc_unlock ( );/* Restore CFS GC activity */
1027710276}
1027810277
1027910278/*
@@ -10473,6 +10472,8 @@ do_pg_stop_backup(char *labelfile, bool waitforarchive, TimeLineID *stoptli_p)
1047310472/* Clean up session-level lock */
1047410473sessionBackupState = SESSION_BACKUP_NONE ;
1047510474
10475+ cfs_control_gc_unlock ();/* Restore CFS GC activity */
10476+
1047610477/*
1047710478 * Read and parse the START WAL LOCATION line (this code is pretty crude,
1047810479 * but we are not expecting any variability in the file format).
@@ -10682,8 +10683,6 @@ do_pg_stop_backup(char *labelfile, bool waitforarchive, TimeLineID *stoptli_p)
1068210683ereport (NOTICE ,
1068310684(errmsg ("WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup" )));
1068410685
10685- cfs_control_gc (SavedGCState );/* Restore CFS GC activity */
10686-
1068710686/*
1068810687 * We're done. As a convenience, return the ending WAL location.
1068910688 */
@@ -10717,6 +10716,8 @@ do_pg_abort_backup(void)
1071710716XLogCtl -> Insert .forcePageWrites = false;
1071810717}
1071910718WALInsertLockRelease ();
10719+
10720+ cfs_control_gc_unlock ();/* Restore CFS GC activity */
1072010721}
1072110722
1072210723/*