dweeezil commented on this pull request.
> + * vdevs, we can not add redundant toplevels. This ensures that
+ * we do not rely on resilver, which does not properly handle
+ * indirect vdevs.
+ */
+ if (spa->spa_vdev_removal != NULL ||
+ spa->spa_removing_phys.sr_prev_indirect_vdev != -1) {
+ for (int c = 0; c < vd->vdev_children; c++) {
+ if (spa->spa_vdev_removal != NULL &&
+ vd->vdev_child[c]->vdev_ashift !=
+ spa->spa_vdev_removal->svr_vdev->vdev_ashift) {
+ return (spa_vdev_exit(spa, vd, txg, EINVAL));
+ }
+ /* Fail if its raidz */
+ if (vd->vdev_ops == &vdev_raidz_ops) {
+ return (spa_vdev_exit(spa, vd, txg, EINVAL));
+ }
This (the "vdev_ops" test) doesn't work and causes the ```removal_with_add```
test to fail its "add a raidz" test because when adding a raidz,
"vdev->vdev_ops" is a "root" vdev and its "vdev_child[0]" is the raidz vdev
type.
--
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/openzfs/openzfs/pull/482#pullrequestreview-80691356
------------------------------------------
openzfs-developer
Archives:
https://openzfs.topicbox.com/groups/developer/discussions/Teafc5ffabd7f916f-M44fce78a877c1c718f811037
Powered by Topicbox: https://topicbox.com