avg-I commented on this pull request.
> @@ -442,18 +444,26 @@ zio_remove_child(zio_t *pio, zio_t *cio, zio_link_t *zl) } static boolean_t -zio_wait_for_children(zio_t *zio, enum zio_child child, enum zio_wait_type wait) +zio_wait_for_children(zio_t *zio, enum zio_child children, Some compilers will complain about `children` parameter, because the values passed through it are not of `enum zio_child` type. For example, `ZIO_CHILD_VDEV | ZIO_CHILD_GANG` equals three which is not a valid value for that enumeration. > @@ -209,12 +209,13 @@ enum zio_flag { ZIO_FLAG_CANFAIL) enum zio_child { - ZIO_CHILD_VDEV = 0, - ZIO_CHILD_GANG, - ZIO_CHILD_DDT, - ZIO_CHILD_LOGICAL, - ZIO_CHILD_TYPES + ZIO_CHILD_VDEV = 1 << 0, + ZIO_CHILD_GANG = 1 << 1, + ZIO_CHILD_DDT = 1 << 2, + ZIO_CHILD_LOGICAL = 1 << 3 I do not have any argument against this change, but have you considered keeping this enumeration as is, but instead changing only `zio_wait_for_children` to expect the bit-mask? E.g. something like ``` #define ZIO_CHILD_BIT(c) (1 << (c)) ``` and then ``` if (zio_wait_for_children(zio, ZIO_CHILD_BIT(ZIO_CHILD_GANG) | ZIO_CHILD_BIT(ZIO_CHILD_LOGICAL), ZIO_WAIT_READY)) { ... } ``` Looks a bit too verbose, but has a benefit of affecting only `zio_wait_for_children` calls which need to be modified in either case. -- 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/505#pullrequestreview-84737942 ------------------------------------------ openzfs-developer Archives: https://openzfs.topicbox.com/groups/developer/discussions/Td0adf1bfacf39ae0-Mb1599e3a1263637729e89df2 Powered by Topicbox: https://topicbox.com