diff options
author | George Amanakis <[email protected]> | 2020-05-06 13:32:28 -0400 |
---|---|---|
committer | GitHub <[email protected]> | 2020-05-06 10:32:28 -0700 |
commit | 1b664952ae34d28c0408c20947f8aa5420c4ab63 (patch) | |
tree | b802421507dee5ff43acb4c3fd550a2770e74036 /module/zfs/vdev_root.c | |
parent | ddc7a2dd3b099c280b4f3ed978f16fa6bd7012c0 (diff) |
Enable splitting mirrors with indirect vdevs
When a top-level vdev is removed from a pool it is converted to an
indirect vdev. Until now splitting such mirrored pools was not possible
with zpool split. This patch enables handling of indirect vdevs and
splitting of those pools with zpool split.
Reviewed-by: Matthew Ahrens <[email protected]>
Reviewed by: Brian Behlendorf <[email protected]>
Signed-off-by: George Amanakis <[email protected]>
Closes #10283
Diffstat (limited to 'module/zfs/vdev_root.c')
-rw-r--r-- | module/zfs/vdev_root.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/module/zfs/vdev_root.c b/module/zfs/vdev_root.c index 7170f7013..ce79f7c73 100644 --- a/module/zfs/vdev_root.c +++ b/module/zfs/vdev_root.c @@ -98,7 +98,8 @@ vdev_root_open(vdev_t *vd, uint64_t *asize, uint64_t *max_asize, for (int c = 0; c < vd->vdev_children; c++) { vdev_t *cvd = vd->vdev_child[c]; - if (cvd->vdev_open_error && !cvd->vdev_islog) { + if (cvd->vdev_open_error && !cvd->vdev_islog && + cvd->vdev_ops != &vdev_indirect_ops) { lasterror = cvd->vdev_open_error; numerrors++; } |