aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlek P <[email protected]>2017-08-24 10:27:20 -0700
committerBrian Behlendorf <[email protected]>2017-08-24 10:27:20 -0700
commite4b6b2db124eac51580833d45d83dfde05cbc55c (patch)
tree3dd2001ffa31f126260b08ff140c1cd27dca29de
parent9b8407638da71ea9f4afb21375f991869f19811f (diff)
OpenZFS 8414 - Implemented zpool scrub pause/resume
Authored by: Alek Pinchuk <[email protected]> Reviewed by: George Melikov <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Reviewed by: Brad Lewis <[email protected]> Reviewed by: Serapheim Dimitropoulos <[email protected]> Reviewed by: Matt Ahrens <[email protected]> Reviewed-by: Giuseppe Di Natale <[email protected]> Approved by: Dan McDonald <[email protected]> Ported-by: Alek Pinchuk <[email protected]> OpenZFS-issue: https://www.illumos.org/issues/8414 OpenZFS-commit: https://github.com/openzfs/openzfs/commit/c29616076 Closes #6538
-rw-r--r--man/man8/zpool.88
-rw-r--r--module/zfs/dsl_scan.c1
2 files changed, 5 insertions, 4 deletions
diff --git a/man/man8/zpool.8 b/man/man8/zpool.8
index 232d14db5..cbc2ab65a 100644
--- a/man/man8/zpool.8
+++ b/man/man8/zpool.8
@@ -1846,9 +1846,11 @@ Stop scrubbing.
.Bl -tag -width Ds
.It Fl p
Pause scrubbing.
-Scrub progress is periodically synced to disk so if the system
-is restarted or pool is exported during a paused scrub, the scrub will resume
-from the place where it was last checkpointed to disk.
+Scrub pause state and progress are periodically synced to disk.
+If the system is restarted or pool is exported during a paused scrub,
+even after import, scrub will remain paused until it is resumed.
+Once resumed the scrub will pick up from the place where it was last
+checkpointed to disk.
To resume a paused scrub issue
.Nm zpool Cm scrub
again.
diff --git a/module/zfs/dsl_scan.c b/module/zfs/dsl_scan.c
index d8e318895..b9b1aadf0 100644
--- a/module/zfs/dsl_scan.c
+++ b/module/zfs/dsl_scan.c
@@ -449,7 +449,6 @@ dsl_scrub_pause_resume_sync(void *arg, dmu_tx_t *tx)
spa_t *spa = dp->dp_spa;
dsl_scan_t *scn = dp->dp_scan;
-
if (*cmd == POOL_SCRUB_PAUSE) {
/* can't pause a scrub when there is no in-progress scrub */
spa->spa_scan_pass_scrub_pause = gethrestime_sec();