Instead of updating the error log page in the caller of the
nvmet_alloc_ctrt() update the error log page in the nvmet_alloc_ctrl().
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
                pr_warn("connect request for invalid subsystem %s!\n",
                        subsysnqn);
                req->cqe->result.u32 = IPO_IATTR_CONNECT_DATA(subsysnqn);
+               req->error_loc = offsetof(struct nvme_common_command, dptr);
                goto out;
        }
 
                req->cqe->result.u32 = IPO_IATTR_CONNECT_DATA(hostnqn);
                up_read(&nvmet_config_sem);
                status = NVME_SC_CONNECT_INVALID_HOST | NVME_SC_DNR;
+               req->error_loc = offsetof(struct nvme_common_command, dptr);
                goto out_put_subsystem;
        }
        up_read(&nvmet_config_sem);
 
 
        status = nvmet_alloc_ctrl(d->subsysnqn, d->hostnqn, req,
                                  le32_to_cpu(c->kato), &ctrl);
-       if (status) {
-               if (status == (NVME_SC_INVALID_FIELD | NVME_SC_DNR))
-                       req->error_loc =
-                               offsetof(struct nvme_common_command, opcode);
+       if (status)
                goto out;
-       }
 
        ctrl->pi_support = ctrl->port->pi_enable && ctrl->subsys->pi_support;