Skip to contentSkip to conversation

nvme: allow duplicate controller if prior controller being deleted

PATCH New James Smart 2 participants 2 messages May 25, 2018 – May 30, 2018 NVMe

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 nvme: allow duplicate controller if prior controller being deleted

The current checks for whether a new controller request "matches" an existing controller ignores controller state and checks identity strings. There are cases where an existing controller may be in its last steps of deletion when they are "matched" by a new connection.

Change the behavior so that the new connection ignores controllers that are deleted.

Signed-off-by James Smart <james.smart at broadcom.com>
---
 drivers/nvme/host/fabrics.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/nvme/host/fabrics.h +3 -1
index ef46c915b7b5..0cf0460a5c92 100644
@@ -139,7 +139,9 @@ static inline bool
 nvmf_ctlr_matches_baseopts(struct nvme_ctrl *ctrl,
 			struct nvmf_ctrl_options *opts)
 {
-	if (strcmp(opts->subsysnqn, ctrl->opts->subsysnqn) ||
+	if (ctrl->state == NVME_CTRL_DELETING ||
+	    ctrl->state == NVME_CTRL_DEAD ||
+	    strcmp(opts->subsysnqn, ctrl->opts->subsysnqn) ||
 	    strcmp(opts->host->nqn, ctrl->opts->host->nqn) ||
 	    memcmp(&opts->host->id, &ctrl->opts->host->id, sizeof(uuid_t)))
 		return false;
Signature · 1 line
2.13.1
#1 lore raw

PATCH 1/1 nvme: allow duplicate controller if prior controller being deleted

Quoted 9 lines · James Smart

The current checks for whether a new controller request "matches" an existing controller ignores controller state and checks identity strings. There are cases where an existing controller may be in its last steps of deletion when they are "matched" by a new connection.

Change the behavior so that the new connection ignores controllers that are deleted.

Signed-off-by James Smart <james.smart at broadcom.com>

Applied to nvme-4.18.