Commit 79695dcd authored by Hou Pu's avatar Hou Pu Committed by Christoph Hellwig
Browse files

nvmet: return proper error code from discovery ctrl



Return NVME_SC_INVALID_FIELD from discovery controller like normal
controller when executing identify or get log page command.

Signed-off-by: default avatarHou Pu <houpu.main@gmail.com>
Reviewed-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent ed4a854b
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -178,12 +178,14 @@ static void nvmet_execute_disc_get_log_page(struct nvmet_req *req)
	if (req->cmd->get_log_page.lid != NVME_LOG_DISC) {
		req->error_loc =
			offsetof(struct nvme_get_log_page_command, lid);
		status = NVME_SC_INVALID_OPCODE | NVME_SC_DNR;
		status = NVME_SC_INVALID_FIELD | NVME_SC_DNR;
		goto out;
	}

	/* Spec requires dword aligned offsets */
	if (offset & 0x3) {
		req->error_loc =
			offsetof(struct nvme_get_log_page_command, lpo);
		status = NVME_SC_INVALID_FIELD | NVME_SC_DNR;
		goto out;
	}
@@ -250,7 +252,7 @@ static void nvmet_execute_disc_identify(struct nvmet_req *req)

	if (req->cmd->identify.cns != NVME_ID_CNS_CTRL) {
		req->error_loc = offsetof(struct nvme_identify, cns);
		status = NVME_SC_INVALID_OPCODE | NVME_SC_DNR;
		status = NVME_SC_INVALID_FIELD | NVME_SC_DNR;
		goto out;
	}