[PATCH 06/14] nvmet: remove repeated call for effects log page
From: Chaitanya Kulkarni <hidden>
Date: 2021-06-28 05:10:13
Subsystem:
nvm express target driver, the rest · Maintainers:
Christoph Hellwig, Sagi Grimberg, Chaitanya Kulkarni, Linus Torvalds
Return status from nvmet_execute_get_log_page_cmd_effects_ns() and complete the request in nvmet_execute_get_log_page(). This reduces number of repeated nvmet_req_complete() calls for log page handlers. Also, now we can get rid of the goto and out label needed for request completion and directly return. Signed-off-by: Chaitanya Kulkarni <redacted> --- drivers/nvme/target/admin-cmd.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/drivers/nvme/target/admin-cmd.c b/drivers/nvme/target/admin-cmd.c
index 2b018b84bf3f..cf02d70dedeb 100644
--- a/drivers/nvme/target/admin-cmd.c
+++ b/drivers/nvme/target/admin-cmd.c@@ -186,16 +186,14 @@ static void nvmet_get_cmd_effects_zns(struct nvme_effects_log *log) log->iocs[nvme_cmd_zone_mgmt_recv] = cpu_to_le32(1 << 0); } -static void nvmet_execute_get_log_cmd_effects_ns(struct nvmet_req *req) +static u16 nvmet_execute_get_log_cmd_effects_ns(struct nvmet_req *req) { struct nvme_effects_log *log; u16 status = NVME_SC_SUCCESS; log = kzalloc(sizeof(*log), GFP_KERNEL); - if (!log) { - status = NVME_SC_INTERNAL; - goto out; - } + if (!log) + return NVME_SC_INTERNAL; switch (req->cmd->get_log_page.csi) { case NVME_CSI_NVM:
@@ -217,8 +215,8 @@ static void nvmet_execute_get_log_cmd_effects_ns(struct nvmet_req *req) status = nvmet_copy_to_sgl(req, 0, log, sizeof(*log)); free: kfree(log); -out: - nvmet_req_complete(req, status); + + return status; } static u16 nvmet_execute_get_log_changed_ns(struct nvmet_req *req)
@@ -338,7 +336,8 @@ static void nvmet_execute_get_log_page(struct nvmet_req *req) status = nvmet_execute_get_log_changed_ns(req); break; case NVME_LOG_CMD_EFFECTS: - return nvmet_execute_get_log_cmd_effects_ns(req); + status = nvmet_execute_get_log_cmd_effects_ns(req); + break; case NVME_LOG_ANA: return nvmet_execute_get_log_page_ana(req); default:
--
2.22.1
_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme