On 10/30/25 11:13 PM, Damien Le Moal wrote:
Unlike the existing BLKREPORTZONES ioctl, this new ioctl uses the flags
field of struct blk_zone_report also as an inpiut. If as an input, the
inpiut -> input
/*
- * BLKREPORTZONE ioctl processing.
+ * Mask of valid input flags for BLKREPORTZONEV2 ioctl.
+ */
+#define BLK_ZONE_REPV2_INPUT_FLAGS (BLK_ZONE_REP_CACHED)
Parentheses are not needed here - the definition of BLK_ZONE_REP_CACHED
should include parentheses if necessary.
+ case BLKREPORTZONEV2:
+ if (rep.flags & ~BLK_ZONE_REPV2_INPUT_FLAGS)
+ return -EINVAL;
-EINVAL probably should be changed into something that indicates "not
supported" rather than "invalid argument"?
index dab5d9700898..1441d79a6173 100644
--- a/include/uapi/linux/blkzoned.h
+++ b/include/uapi/linux/blkzoned.h
@@ -82,10 +82,20 @@ enum blk_zone_cond {
/**
* enum blk_zone_report_flags - Feature flags of reported zone descriptors.
*
- * @BLK_ZONE_REP_CAPACITY: Zone descriptor has capacity field.
+ * @BLK_ZONE_REP_CAPACITY: Output only. Indicates that zone descriptors in a
+ * zone report have a valid capacity field.
+ * @BLK_ZONE_REP_CACHED: Input only. Indicates that the zone report should be
+ * generated using cached zone information. In this case,
+ * the implicit open, explicit open and closed zone
+ * conditions are all reported with the
+ * BLK_ZONE_COND_ACTIVE condition.
*/
enum blk_zone_report_flags {
+ /* Output flags */
BLK_ZONE_REP_CAPACITY = (1 << 0),
+
+ /* Input flags */
+ BLK_ZONE_REP_CACHED = (1 << 31),
};
Why 1 << 31 instead of 1 << 1?
Otherwise this patch looks good to me.
Thanks,
Bart.