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

Reply via email to