diff options
author | Jerry Jelinek <[email protected]> | 2018-08-30 13:13:30 +0000 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2018-10-02 16:18:24 -0700 |
commit | f65fbee1e7a370db24e1aaa2b7bea7865938b9ae (patch) | |
tree | d4bed1ccb9e8e8ca76e8df77a6bd3fd51083fb75 | |
parent | cb110f254eaaaaff02d548d4a3f2b561b9cc2a51 (diff) |
OpenZFS 9700 - ZFS resilvered mirror does not balance reads
Authored by: Jerry Jelinek <[email protected]>
Reviewed by: Toomas Soome <[email protected]>
Reviewed by: Sanjay Nadkarni <[email protected]>
Reviewed by: George Wilson <[email protected]>
Reviewed-by: George Melikov <[email protected]>
Reviewed-by: Richard Elling <[email protected]>
Approved by: Matthew Ahrens <[email protected]>
Ported-by: Brian Behlendorf <[email protected]>
OpenZFS-issue: https://illumos.org/issues/9700
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/82f63c3c
Closes #7973
-rw-r--r-- | module/zfs/spa.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/module/zfs/spa.c b/module/zfs/spa.c index eaca2d29e..ad8000914 100644 --- a/module/zfs/spa.c +++ b/module/zfs/spa.c @@ -28,6 +28,7 @@ * Copyright (c) 2014 Integros [integros.com] * Copyright 2016 Toomas Soome <[email protected]> * Copyright (c) 2016 Actifio, Inc. All rights reserved. + * Copyright 2018 Joyent, Inc. * Copyright (c) 2017 Datto Inc. * Copyright 2017 Joyent, Inc. * Copyright (c) 2017, Intel Corporation. @@ -6703,6 +6704,7 @@ spa_vdev_resilver_done_hunt(vdev_t *vd) /* * Check for a completed resilver with the 'unspare' flag set. + * Also potentially update faulted state. */ if (vd->vdev_ops == &vdev_spare_ops) { vdev_t *first = vd->vdev_child[0]; @@ -6724,6 +6726,8 @@ spa_vdev_resilver_done_hunt(vdev_t *vd) !vdev_dtl_required(oldvd)) return (oldvd); + vdev_propagate_state(vd); + /* * If there are more than two spares attached to a disk, * and those spares are not required, then we want to |