[PATCH 06/14] nvmet: remove repeated call for effects log page
Chaitanya Kulkarni
chaitanya.kulkarni at wdc.com
Sun Jun 27 22:08:09 PDT 2021
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 <chaitanya.kulkarni at wdc.com>
---
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
More information about the Linux-nvme
mailing list