forked from Minki/linux
nvmet: remove extra variable in id-desclist
We remove the extra local variable struct nvmet_ns in nvmet_execute_identify_desclist() since req already has ns member that can be reused, this also eliminates the explicit call to nvmet_put_namespace() which is already present in the request completion path. Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com> Reviewed-by: Sagi Grimberg <sagi@grimberg.me> Signed-off-by: Christoph Hellwig <hch@lst.de>
This commit is contained in:
parent
624e67fdf9
commit
3631c7f4a2
@ -605,37 +605,35 @@ static u16 nvmet_copy_ns_identifier(struct nvmet_req *req, u8 type, u8 len,
|
|||||||
|
|
||||||
static void nvmet_execute_identify_desclist(struct nvmet_req *req)
|
static void nvmet_execute_identify_desclist(struct nvmet_req *req)
|
||||||
{
|
{
|
||||||
struct nvmet_ns *ns;
|
|
||||||
u16 status = 0;
|
u16 status = 0;
|
||||||
off_t off = 0;
|
off_t off = 0;
|
||||||
|
|
||||||
ns = nvmet_find_namespace(req->sq->ctrl, req->cmd->identify.nsid);
|
req->ns = nvmet_find_namespace(req->sq->ctrl, req->cmd->identify.nsid);
|
||||||
if (!ns) {
|
if (!req->ns) {
|
||||||
req->error_loc = offsetof(struct nvme_identify, nsid);
|
req->error_loc = offsetof(struct nvme_identify, nsid);
|
||||||
status = NVME_SC_INVALID_NS | NVME_SC_DNR;
|
status = NVME_SC_INVALID_NS | NVME_SC_DNR;
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (memchr_inv(&ns->uuid, 0, sizeof(ns->uuid))) {
|
if (memchr_inv(&req->ns->uuid, 0, sizeof(req->ns->uuid))) {
|
||||||
status = nvmet_copy_ns_identifier(req, NVME_NIDT_UUID,
|
status = nvmet_copy_ns_identifier(req, NVME_NIDT_UUID,
|
||||||
NVME_NIDT_UUID_LEN,
|
NVME_NIDT_UUID_LEN,
|
||||||
&ns->uuid, &off);
|
&req->ns->uuid, &off);
|
||||||
if (status)
|
if (status)
|
||||||
goto out_put_ns;
|
goto out;
|
||||||
}
|
}
|
||||||
if (memchr_inv(ns->nguid, 0, sizeof(ns->nguid))) {
|
if (memchr_inv(req->ns->nguid, 0, sizeof(req->ns->nguid))) {
|
||||||
status = nvmet_copy_ns_identifier(req, NVME_NIDT_NGUID,
|
status = nvmet_copy_ns_identifier(req, NVME_NIDT_NGUID,
|
||||||
NVME_NIDT_NGUID_LEN,
|
NVME_NIDT_NGUID_LEN,
|
||||||
&ns->nguid, &off);
|
&req->ns->nguid, &off);
|
||||||
if (status)
|
if (status)
|
||||||
goto out_put_ns;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sg_zero_buffer(req->sg, req->sg_cnt, NVME_IDENTIFY_DATA_SIZE - off,
|
if (sg_zero_buffer(req->sg, req->sg_cnt, NVME_IDENTIFY_DATA_SIZE - off,
|
||||||
off) != NVME_IDENTIFY_DATA_SIZE - off)
|
off) != NVME_IDENTIFY_DATA_SIZE - off)
|
||||||
status = NVME_SC_INTERNAL | NVME_SC_DNR;
|
status = NVME_SC_INTERNAL | NVME_SC_DNR;
|
||||||
out_put_ns:
|
|
||||||
nvmet_put_namespace(ns);
|
|
||||||
out:
|
out:
|
||||||
nvmet_req_complete(req, status);
|
nvmet_req_complete(req, status);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user