nvmf: keep track of nvmet connect error status
authorGuan Junxiong <guanjunxiong@huawei.com>
Tue, 13 Jun 2017 02:51:24 +0000 (10:51 +0800)
committerChristoph Hellwig <hch@lst.de>
Thu, 15 Jun 2017 12:30:27 +0000 (14:30 +0200)
To let the host know what happends to the connection establishment,
adjust the behavior of nvmf_log_connect_error to make more connect
specifig error codes human-readble.

Signed-off-by: Guan Junxiong <guanjunxiong@huawei.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/host/fabrics.c

index 4ed1447830794a6045053dcb640d00b6c5f09f7c..6e6864516ce60f6482c651ecdcc1f949e283cd1a 100644 (file)
@@ -337,6 +337,24 @@ static void nvmf_log_connect_error(struct nvme_ctrl *ctrl,
                        }
                }
                break;
+
+       case NVME_SC_CONNECT_INVALID_HOST:
+               dev_err(ctrl->device,
+                       "Connect for subsystem %s is not allowed, hostnqn: %s\n",
+                       data->subsysnqn, data->hostnqn);
+               break;
+
+       case NVME_SC_CONNECT_CTRL_BUSY:
+               dev_err(ctrl->device,
+                       "Connect command failed: controller is busy or not available\n");
+               break;
+
+       case NVME_SC_CONNECT_FORMAT:
+               dev_err(ctrl->device,
+                       "Connect incompatible format: %d",
+                       cmd->connect.recfmt);
+               break;
+
        default:
                dev_err(ctrl->device,
                        "Connect command failed, error wo/DNR bit: %d\n",