From 02489f250655146e73cf7b54036bde53bcb5bb4b Mon Sep 17 00:00:00 2001 From: Sagi Grimberg Date: Sun, 28 Nov 2021 15:03:03 +0200 Subject: [PATCH] fabrics: fix endless loop in connect-all for NVME_NQN_CURR For a discovery log page entry that indicates the discovery controller that returned it (i.e. itself), we need to set the controller as discovered (because we got the discovery log page by connecting to it). Without this connect-all goes in an endless loop keep connecting and retrieving the log page from the same discovery subsystem port. Fixes: 06a8f001d314 ("tree,fabrics: detect discovery loops") Signed-off-by: Sagi Grimberg --- src/nvme/fabrics.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/nvme/fabrics.c b/src/nvme/fabrics.c index 686a5641..9207296b 100644 --- a/src/nvme/fabrics.c +++ b/src/nvme/fabrics.c @@ -657,8 +657,10 @@ nvme_ctrl_t nvmf_connect_disc_entry(nvme_host_t h, } switch (e->subtype) { - case NVME_NQN_DISC: case NVME_NQN_CURR: + nvme_ctrl_set_discovered(c, true); + break; + case NVME_NQN_DISC: if (discover) *discover = true; nvme_ctrl_set_discovery_ctrl(c, true); -- 2.50.1