]> www.infradead.org Git - nvme.git/commitdiff
nvme-fabrics: fix I/O connect error handling
authorChaitanya Kulkarni <kch@nvidia.com>
Tue, 13 Feb 2024 08:26:46 +0000 (00:26 -0800)
committerKeith Busch <kbusch@kernel.org>
Tue, 13 Feb 2024 16:16:10 +0000 (08:16 -0800)
In nvmf_connect_io_queue(), if connect I/O command fails, we log the
error and continue for authentication. This overrides error captured
from __nvme_submit_sync_cmd(), causing wrong return value.

Add goto out_free_data after logging connect error to fix the issue.

Fixes: f50fff73d620c ("nvme: implement In-Band authentication")
Signed-off-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Keith Busch <kbusch@kernel.org>
drivers/nvme/host/fabrics.c

index 3499acbf6a822fc1a45d93894f4870a9a5f7857c..495c171daead11395a97de82901b5b71662f8f17 100644 (file)
@@ -534,6 +534,7 @@ int nvmf_connect_io_queue(struct nvme_ctrl *ctrl, u16 qid)
        if (ret) {
                nvmf_log_connect_error(ctrl, ret, le32_to_cpu(res.u32),
                                       &cmd, data);
+               goto out_free_data;
        }
        result = le32_to_cpu(res.u32);
        if (result & (NVME_CONNECT_AUTHREQ_ATR | NVME_CONNECT_AUTHREQ_ASCR)) {