Commit 4db69a3d authored by Chaitanya Kulkarni's avatar Chaitanya Kulkarni Committed by Jens Axboe

nvmet: add ns tear down label for pt-cmd handling

In the current implementation before submitting the passthru cmd we
may come across error e.g. getting ns from passthru controller,
allocating a request from passthru controller, etc. For all the failure
cases it only uses single goto label fail_out.

In the target code, we follow the pattern to have a separate label for
each error out the case when setting up multiple things before the actual
action.

This patch follows the same pattern and renames generic fail_out label
to out_put_ns and updates the error out cases in the
nvmet_passthru_execute_cmd() where it is needed.
Signed-off-by: default avatarChaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: default avatarLogan Gunthorpe <logang@deltatee.com>
Signed-off-by: default avatarSagi Grimberg <sagi@grimberg.me>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent e398863b
...@@ -230,7 +230,7 @@ static void nvmet_passthru_execute_cmd(struct nvmet_req *req) ...@@ -230,7 +230,7 @@ static void nvmet_passthru_execute_cmd(struct nvmet_req *req)
if (unlikely(!ns)) { if (unlikely(!ns)) {
pr_err("failed to get passthru ns nsid:%u\n", nsid); pr_err("failed to get passthru ns nsid:%u\n", nsid);
status = NVME_SC_INVALID_NS | NVME_SC_DNR; status = NVME_SC_INVALID_NS | NVME_SC_DNR;
goto fail_out; goto out;
} }
q = ns->queue; q = ns->queue;
...@@ -240,14 +240,14 @@ static void nvmet_passthru_execute_cmd(struct nvmet_req *req) ...@@ -240,14 +240,14 @@ static void nvmet_passthru_execute_cmd(struct nvmet_req *req)
if (IS_ERR(rq)) { if (IS_ERR(rq)) {
rq = NULL; rq = NULL;
status = NVME_SC_INTERNAL; status = NVME_SC_INTERNAL;
goto fail_out; goto out_put_ns;
} }
if (req->sg_cnt) { if (req->sg_cnt) {
ret = nvmet_passthru_map_sg(req, rq); ret = nvmet_passthru_map_sg(req, rq);
if (unlikely(ret)) { if (unlikely(ret)) {
status = NVME_SC_INTERNAL; status = NVME_SC_INTERNAL;
goto fail_out; goto out_put_ns;
} }
} }
...@@ -274,9 +274,10 @@ static void nvmet_passthru_execute_cmd(struct nvmet_req *req) ...@@ -274,9 +274,10 @@ static void nvmet_passthru_execute_cmd(struct nvmet_req *req)
return; return;
fail_out: out_put_ns:
if (ns) if (ns)
nvme_put_ns(ns); nvme_put_ns(ns);
out:
nvmet_req_complete(req, status); nvmet_req_complete(req, status);
blk_put_request(rq); blk_put_request(rq);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment