Skip to content

Commit

Permalink
types: fix regression for vendor-specific field in nvme_id_ns
Browse files Browse the repository at this point in the history
Recent versions of nvme-cli have started reading vs from offset
392 instead of 384. Previous PRs coupled the use of nvme_id_ns
for use in namespace management (create_ns).  However, the NVMe
spec has a different structure for namespace management, with
only a subset of the fields allowed/shared and some additional
fields.

To fix this, remove lbstm and restore the proper length for vs
from nvme_id_ns.

I expect that create_ns() should fully switch over to the
nvme_ns_mgmt_host_sw_specified struct which seems aligned with
the spec (though has some newer fields than what is available in
the latest NVMe Command Set Specification Revision 1.0c). This
will have to be addressed separately in nvme-cli.

#307
linux-nvme/nvme-cli#1452

Signed-off-by: Chris Patterson <[email protected]>
  • Loading branch information
cjp256 authored and igaw committed Dec 1, 2023
1 parent 9b1ec10 commit f92b2a3
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions src/nvme/types.h
Original file line number Diff line number Diff line change
Expand Up @@ -1799,7 +1799,6 @@ enum nvme_lbaf_rp {
* remains fixed throughout the life of the namespace and is
* preserved across namespace and controller operations
* @lbaf: LBA Format, see &struct nvme_lbaf.
* @lbstm: Logical Block Storage Tag Mask for end-to-end protection
* @vs: Vendor Specific
*/
struct nvme_id_ns {
Expand Down Expand Up @@ -1843,8 +1842,7 @@ struct nvme_id_ns {
__u8 nguid[16];
__u8 eui64[8];
struct nvme_lbaf lbaf[64];
__le64 lbstm;
__u8 vs[3704];
__u8 vs[3712];
};

/**
Expand Down

0 comments on commit f92b2a3

Please sign in to comment.