Commit 11c8b86b authored by Jacek Kalwas's avatar Jacek Kalwas Committed by Jim Harris
Browse files

nvme: fix reservation report missing cdw11.eds



Reservation Status Extended Data Structure is expected if a 128-bit
Host Identifier was selected.

128-bit or 64-bit Host Identifier is chosen based on Controller
Attributes (ctatt) advertised. For NVMe PCIe controllers it can be
specified with Set Feature Host Identifier command and cdw11 EXHID
field. For other NVMe over Fabrics (non PCIe) it is provided via
Connect command and it shall use 128-bit Host Identifier only.

Change-Id: I585ab838fb584202c11457c10240b8a2b06fcfe1
Signed-off-by: default avatarJacek Kalwas <jacek.kalwas@nutanix.com>
Reviewed-on: https://review.spdk.io/c/spdk/spdk/+/25827


Reviewed-by: default avatarChangpeng Liu <changpeliu@tencent.com>
Tested-by: default avatarSPDK Automated Test System <spdkbot@gmail.com>
Reviewed-by: default avatarJim Harris <jim.harris@nvidia.com>
Community-CI: Mellanox Build Bot
Reviewed-by: default avatarAnkit Kumar <ankit.kumar@samsung.com>
parent 176eed61
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -1453,6 +1453,11 @@ spdk_nvme_ns_cmd_reservation_report(struct spdk_nvme_ns *ns,
	num_dwords = (len >> 2);
	cmd->cdw10 = num_dwords - 1; /* 0-based */

	/* Reservation Status Extended Data Structure is expected if a 128-bit Host Identifier was selected. */
	if (qpair->ctrlr->cdata.ctratt.bits.host_id_exhid_supported) {
		cmd->cdw11_bits.resv_report.eds = 1;
	}

	return nvme_qpair_submit_request(qpair, req);
}