aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndriy Gapon <avg@FreeBSD.org>2019-11-21 14:14:08 +0000
committerAndriy Gapon <avg@FreeBSD.org>2019-11-21 14:14:08 +0000
commita81c89a2c15ac6c46062b6f3a56b8569ca722cbc (patch)
tree18370d9c1e596c3d7a7f744a68c9fa73fd1a7060
parent8a408c7a3a4606de36ef379ed7bdd9f2766fcdcf (diff)
downloadsrc-vendor/illumos.tar.gz
src-vendor/illumos.zip
disabled resilver_defer feature leads to looping resilversvendor/illumos
illumos/illumos-gate@233f6c49954dadfb21fa0809febd15e2160e0ff5 https://github.com/illumos/illumos-gate/commit/233f6c49954dadfb21fa0809febd15e2160e0ff5 Note: unusually for illumos this commit does not have a bug ID. Author: Kody Kantor <kody@kkantor.com>
Notes
Notes: svn path=/vendor-sys/illumos/dist/; revision=354962
-rw-r--r--uts/common/fs/zfs/dsl_scan.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/uts/common/fs/zfs/dsl_scan.c b/uts/common/fs/zfs/dsl_scan.c
index b5ef5a89e9db..3999355d0c7f 100644
--- a/uts/common/fs/zfs/dsl_scan.c
+++ b/uts/common/fs/zfs/dsl_scan.c
@@ -23,7 +23,7 @@
* Copyright (c) 2011, 2018 by Delphix. All rights reserved.
* Copyright 2016 Gary Mills
* Copyright (c) 2011, 2017 by Delphix. All rights reserved.
- * Copyright 2017 Joyent, Inc.
+ * Copyright 2019 Joyent, Inc.
* Copyright (c) 2017 Datto Inc.
*/
@@ -920,13 +920,15 @@ dsl_scan_done(dsl_scan_t *scn, boolean_t complete, dmu_tx_t *tx)
* will find the drives that need to be resilvered
* when the machine reboots and start the resilver then.
*/
- boolean_t resilver_needed =
- dsl_scan_clear_deferred(spa->spa_root_vdev, tx);
- if (resilver_needed) {
- spa_history_log_internal(spa,
- "starting deferred resilver", tx,
- "errors=%llu", spa_get_errlog_size(spa));
- spa_async_request(spa, SPA_ASYNC_RESILVER);
+ if (spa_feature_is_enabled(spa, SPA_FEATURE_RESILVER_DEFER)) {
+ boolean_t resilver_needed =
+ dsl_scan_clear_deferred(spa->spa_root_vdev, tx);
+ if (resilver_needed) {
+ spa_history_log_internal(spa,
+ "starting deferred resilver", tx,
+ "errors=%llu", spa_get_errlog_size(spa));
+ spa_async_request(spa, SPA_ASYNC_RESILVER);
+ }
}
}