@@ -2071,14 +2071,18 @@ struct nvme_zns_lbafe {
20712071/**
20722072 * struct nvme_zns_id_ns - Zoned Namespace Command Set Specific
20732073 * Identify Namespace Data Structure
2074- * @zoc: Zone Operation Characteristics
2075- * @ozcs: Optional Zoned Command Support
2076- * @mar: Maximum Active Resources
2077- * @mor: Maximum Open Resources
2078- * @rrl: Reset Recommended Limit
2079- * @frl: Finish Recommended Limit
2080- * @lbafe: LBA Format Extension
2081- * @vs: Vendor Specific * struct nvme_zns_id_ns -
2074+ * @zoc: Zone Operation Characteristics
2075+ * @ozcs: Optional Zoned Command Support
2076+ * @mar: Maximum Active Resources
2077+ * @mor: Maximum Open Resources
2078+ * @rrl: Reset Recommended Limit
2079+ * @frl: Finish Recommended Limit
2080+ * @numzrwa: Number of ZRWA Resources
2081+ * @zrwafg: ZRWA Flush Granularity
2082+ * @zrwasz: ZRWA Size
2083+ * @zrwacap: ZRWA Capability
2084+ * @lbafe: LBA Format Extension
2085+ * @vs: Vendor Specific
20822086 */
20832087struct nvme_zns_id_ns {
20842088 __le16 zoc ;
@@ -2093,7 +2097,11 @@ struct nvme_zns_id_ns {
20932097 __le32 frl1 ;
20942098 __le32 frl2 ;
20952099 __le32 frl3 ;
2096- __u8 rsvd44 [2772 ];
2100+ __le32 numzrwa ;
2101+ __le16 zrwafg ;
2102+ __le16 zrwasz ;
2103+ __u8 zrwacap ;
2104+ __u8 rsvd53 [2763 ];
20972105 struct nvme_zns_lbafe lbafe [64 ];
20982106 __u8 vs [256 ];
20992107};
@@ -3444,6 +3452,7 @@ enum nvme_zns_za {
34443452 NVME_ZNS_ZA_ZFC = 1 << 0 ,
34453453 NVME_ZNS_ZA_FZR = 1 << 1 ,
34463454 NVME_ZNS_ZA_RZR = 1 << 2 ,
3455+ NVME_ZNS_ZA_ZRWAV = 1 << 3 ,
34473456 NVME_ZNS_ZA_ZDEV = 1 << 7 ,
34483457};
34493458
@@ -4830,6 +4839,14 @@ struct nvme_mi_vpd_hdr {
48304839 * command is re-submitted to any controller
48314840 * in the NVM subsystem, then that
48324841 * re-submitted command is expected to fail.
4842+ * @NVME_SC_ZNS_INVALID_OP_REQUEST: Invalid Zone Operation Request:
4843+ * The operation requested is invalid. This may be due to
4844+ * various conditions, including: attempting to allocate a
4845+ * ZRWA when a zone is not in the ZSE:Empty state; or
4846+ * invalid Flush Explicit ZRWA Range Send Zone Action
4847+ * operation.
4848+ * @NVME_SC_ZNS_ZRWA_RESOURCES_UNAVAILABLE: ZRWA Resources Unavailable:
4849+ * No ZRWAs are available.
48334850 * @NVME_SC_ZNS_BOUNDARY_ERROR: Zone Boundary Error: The command specifies
48344851 * logical blocks in more than one zone.
48354852 * @NVME_SC_ZNS_FULL: Zone Is Full: The accessed zone is in the
@@ -4984,14 +5001,16 @@ enum nvme_status_field {
49845001 /*
49855002 * I/O Command Set Specific - ZNS commands:
49865003 */
4987- NVME_SC_ZNS_BOUNDARY_ERROR = 0xb8 ,
4988- NVME_SC_ZNS_FULL = 0xb9 ,
4989- NVME_SC_ZNS_READ_ONLY = 0xba ,
4990- NVME_SC_ZNS_OFFLINE = 0xbb ,
4991- NVME_SC_ZNS_INVALID_WRITE = 0xbc ,
4992- NVME_SC_ZNS_TOO_MANY_ACTIVE = 0xbd ,
4993- NVME_SC_ZNS_TOO_MANY_OPENS = 0xbe ,
4994- NVME_SC_ZNS_INVAL_TRANSITION = 0xbf ,
5004+ NVME_SC_ZNS_INVALID_OP_REQUEST = 0xb6 ,
5005+ NVME_SC_ZNS_ZRWA_RESOURCES_UNAVAILABLE = 0xb7 ,
5006+ NVME_SC_ZNS_BOUNDARY_ERROR = 0xb8 ,
5007+ NVME_SC_ZNS_FULL = 0xb9 ,
5008+ NVME_SC_ZNS_READ_ONLY = 0xba ,
5009+ NVME_SC_ZNS_OFFLINE = 0xbb ,
5010+ NVME_SC_ZNS_INVALID_WRITE = 0xbc ,
5011+ NVME_SC_ZNS_TOO_MANY_ACTIVE = 0xbd ,
5012+ NVME_SC_ZNS_TOO_MANY_OPENS = 0xbe ,
5013+ NVME_SC_ZNS_INVAL_TRANSITION = 0xbf ,
49955014
49965015 /*
49975016 * Media and Data Integrity Errors:
@@ -5877,6 +5896,7 @@ enum nvme_zns_send_action {
58775896 NVME_ZNS_ZSA_RESET = 0x4 ,
58785897 NVME_ZNS_ZSA_OFFLINE = 0x5 ,
58795898 NVME_ZNS_ZSA_SET_DESC_EXT = 0x10 ,
5899+ NVME_ZNS_ZSA_ZRWA_FLUSH = 0x11 ,
58805900};
58815901
58825902/**
0 commit comments