]> www.infradead.org Git - nvme.git/commitdiff
nvmet: Introduce nvmet_get_cmd_effects_admin()
authorDamien Le Moal <dlemoal@kernel.org>
Sat, 4 Jan 2025 04:59:37 +0000 (13:59 +0900)
committerKeith Busch <kbusch@kernel.org>
Sat, 11 Jan 2025 03:30:47 +0000 (19:30 -0800)
In order to have a logically better organized implementation of the
effects log page, split out reporting the supported admin commands from
nvmet_get_cmd_effects_nvm() into the new function
nvmet_get_cmd_effects_admin().

Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Tested-by: Rick Wertenbroek <rick.wertenbroek@gmail.com>
Tested-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/target/admin-cmd.c

index b73f5fde4d9e29a180aeba729f6187b2c4a4d881..78478a4a2e4dedd178063ddc0d12c8555cdde148 100644 (file)
@@ -230,7 +230,7 @@ out:
        nvmet_req_complete(req, status);
 }
 
-static void nvmet_get_cmd_effects_nvm(struct nvme_effects_log *log)
+static void nvmet_get_cmd_effects_admin(struct nvme_effects_log *log)
 {
        log->acs[nvme_admin_get_log_page] =
        log->acs[nvme_admin_identify] =
@@ -240,7 +240,10 @@ static void nvmet_get_cmd_effects_nvm(struct nvme_effects_log *log)
        log->acs[nvme_admin_async_event] =
        log->acs[nvme_admin_keep_alive] =
                cpu_to_le32(NVME_CMD_EFFECTS_CSUPP);
+}
 
+static void nvmet_get_cmd_effects_nvm(struct nvme_effects_log *log)
+{
        log->iocs[nvme_cmd_read] =
        log->iocs[nvme_cmd_flush] =
        log->iocs[nvme_cmd_dsm] =
@@ -276,6 +279,7 @@ static void nvmet_execute_get_log_cmd_effects_ns(struct nvmet_req *req)
 
        switch (req->cmd->get_log_page.csi) {
        case NVME_CSI_NVM:
+               nvmet_get_cmd_effects_admin(log);
                nvmet_get_cmd_effects_nvm(log);
                break;
        case NVME_CSI_ZNS:
@@ -283,6 +287,7 @@ static void nvmet_execute_get_log_cmd_effects_ns(struct nvmet_req *req)
                        status = NVME_SC_INVALID_IO_CMD_SET;
                        goto free;
                }
+               nvmet_get_cmd_effects_admin(log);
                nvmet_get_cmd_effects_nvm(log);
                nvmet_get_cmd_effects_zns(log);
                break;