Commit ff69ab47 authored by Konrad Sztyber's avatar Konrad Sztyber Committed by Tomasz Zawadzki
Browse files

nvmf: clear unsupported commands in effects log



That way, only commands that can actually be executed are advertised as
supported in the effects log.

Signed-off-by: default avatarKonrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I8dcc5891cb8731c66abcd2c2f6a82c6d7f722f6e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23441


Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <jim.harris@samsung.com>
parent d1b37c16
Loading
Loading
Loading
Loading
+12 −0
Original line number Diff line number Diff line
@@ -2538,6 +2538,15 @@ nvmf_get_cmds_and_effects_log_page(struct spdk_nvmf_ctrlr *ctrlr, struct iovec *
	struct spdk_nvme_cmds_and_effect_entry zero = {};
	struct spdk_iov_xfer ix;

	if (!ctrlr->cdata.oncs.write_zeroes || !nvmf_ctrlr_write_zeroes_supported(ctrlr)) {
		cmds_and_effect_log_page.io_cmds_supported[SPDK_NVME_OPC_WRITE_ZEROES] = zero;
	}
	if (!ctrlr->cdata.oncs.dsm || !nvmf_ctrlr_dsm_supported(ctrlr)) {
		cmds_and_effect_log_page.io_cmds_supported[SPDK_NVME_OPC_DATASET_MANAGEMENT] = zero;
	}
	if (!ctrlr->cdata.oncs.compare) {
		cmds_and_effect_log_page.io_cmds_supported[SPDK_NVME_OPC_COMPARE] = zero;
	}
	if (!nvmf_subsystem_has_zns_iocs(ctrlr->subsys)) {
		cmds_and_effect_log_page.io_cmds_supported[SPDK_NVME_OPC_ZONE_MGMT_SEND] = zero;
		cmds_and_effect_log_page.io_cmds_supported[SPDK_NVME_OPC_ZONE_MGMT_RECV] = zero;
@@ -2545,6 +2554,9 @@ nvmf_get_cmds_and_effects_log_page(struct spdk_nvmf_ctrlr *ctrlr, struct iovec *
	if (!nvmf_subsystem_zone_append_supported(ctrlr->subsys)) {
		cmds_and_effect_log_page.io_cmds_supported[SPDK_NVME_OPC_ZONE_APPEND] = zero;
	}
	if (!ctrlr->cdata.oncs.copy) {
		cmds_and_effect_log_page.io_cmds_supported[SPDK_NVME_OPC_COPY] = zero;
	}

	spdk_iov_xfer_init(&ix, iovs, iovcnt);
	if (offset < page_size) {