diff options
author | Alexander Motin <[email protected]> | 2018-04-03 14:57:15 -0400 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2018-04-30 13:05:55 -0700 |
commit | 20507534d4ede14d4dd82c99fc8d461704ce7419 (patch) | |
tree | 22ff8609fe61018956e336264504cf19db885328 | |
parent | eb201f50ac02a2b5cbfe7274cb6274ef767002da (diff) |
OpenZFS 9434 - Speculative prefetch is blocked by device removal code
Device removal code does not set spa_indirect_vdevs_loaded for pools
that never experienced device removal. At least one visual consequence
of it is completely blocked speculative prefetcher. This patch sets
the variable in such situations.
Authored by: Alexander Motin <[email protected]>
Reviewed by: Matthew Ahrens <[email protected]>
Reviewed by: Prashanth Sreenivasa <[email protected]>
Reviewed-by: George Melikov <[email protected]>
Reviewed-by: Brian Behlendorf <[email protected]>
Reviewed-by: Tim Chase <[email protected]>
Approved by: Matt Ahrens <[email protected]>
Ported-by: Giuseppe Di Natale <[email protected]>
OpenZFS-issue: https://www.illumos.org/issues/9434
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/16127b627b
Closes #7480
-rw-r--r-- | module/zfs/vdev_removal.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/module/zfs/vdev_removal.c b/module/zfs/vdev_removal.c index 0fca8fb03..826e5c421 100644 --- a/module/zfs/vdev_removal.c +++ b/module/zfs/vdev_removal.c @@ -352,6 +352,7 @@ spa_remove_init(spa_t *spa) spa->spa_removing_phys.sr_state = DSS_NONE; spa->spa_removing_phys.sr_removing_vdev = -1; spa->spa_removing_phys.sr_prev_indirect_vdev = -1; + spa->spa_indirect_vdevs_loaded = B_TRUE; return (0); } else if (error != 0) { return (error); |