Commit 181303d0 authored by Hannes Reinecke's avatar Hannes Reinecke Committed by Christoph Hellwig

nvme-fabrics: allow duplicate connections to the discovery controller

The whole point of the discovery controller is that it can accept
multiple connections. Additionally the cmic field is not even defined for
the discovery controller identify page.
Signed-off-by: default avatarHannes Reinecke <hare@suse.com>
Reviewed-by: default avatarJames Smart <james.smart@broadcom.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 461fbc8f
...@@ -2184,7 +2184,8 @@ static int nvme_init_subsystem(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id) ...@@ -2184,7 +2184,8 @@ static int nvme_init_subsystem(struct nvme_ctrl *ctrl, struct nvme_id_ctrl *id)
* Verify that the subsystem actually supports multiple * Verify that the subsystem actually supports multiple
* controllers, else bail out. * controllers, else bail out.
*/ */
if (nvme_active_ctrls(found) && !(id->cmic & (1 << 1))) { if (!ctrl->opts->discovery_nqn &&
nvme_active_ctrls(found) && !(id->cmic & (1 << 1))) {
dev_err(ctrl->device, dev_err(ctrl->device,
"ignoring ctrl due to duplicate subnqn (%s).\n", "ignoring ctrl due to duplicate subnqn (%s).\n",
found->subnqn); found->subnqn);
......
...@@ -850,6 +850,7 @@ static int nvmf_parse_options(struct nvmf_ctrl_options *opts, ...@@ -850,6 +850,7 @@ static int nvmf_parse_options(struct nvmf_ctrl_options *opts,
if (opts->discovery_nqn) { if (opts->discovery_nqn) {
opts->kato = 0; opts->kato = 0;
opts->nr_io_queues = 0; opts->nr_io_queues = 0;
opts->duplicate_connect = true;
} }
if (ctrl_loss_tmo < 0) if (ctrl_loss_tmo < 0)
opts->max_reconnects = -1; opts->max_reconnects = -1;
......
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