nvmet: add a helper function for cqid checking

This patch adds a new helper function nvmet_check_io_cqid(). It is to be
used when parsing host commands for IO CQ creation/deletion and IO SQ
creation to ensure that the specified IO completion queue identifier
(CQID) is not 0 (Admin queue ID). This is a check that already occurs in
the nvmet_execute_x() functions prior to nvmet_check_cqid.

With the addition of this helper function, the CQ ID checks in the
nvmet_execute_x() function can be removed, and instead simply call
nvmet_check_io_cqid() in place of nvmet_check_cqid().

Signed-off-by: Wilfred Mallawa <wilfred.mallawa@wdc.com>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
Wilfred Mallawa
2025-04-24 15:13:49 +10:00
committed by Christoph Hellwig
parent c91a201291
commit b3649f829a
3 changed files with 10 additions and 12 deletions

View File

@@ -96,12 +96,7 @@ static void nvmet_execute_delete_cq(struct nvmet_req *req)
goto complete;
}
if (!cqid) {
status = NVME_SC_QID_INVALID | NVME_STATUS_DNR;
goto complete;
}
status = nvmet_check_cqid(ctrl, cqid);
status = nvmet_check_io_cqid(ctrl, cqid);
if (status != NVME_SC_SUCCESS)
goto complete;
@@ -127,12 +122,7 @@ static void nvmet_execute_create_cq(struct nvmet_req *req)
goto complete;
}
if (!cqid) {
status = NVME_SC_QID_INVALID | NVME_STATUS_DNR;
goto complete;
}
status = nvmet_check_cqid(ctrl, cqid);
status = nvmet_check_io_cqid(ctrl, cqid);
if (status != NVME_SC_SUCCESS)
goto complete;