Thread (2 messages) 2 messages, 2 authors, 2021-11-29

Re: [PATCH libnvme v2] fabrics: fix endless loop in connect-all for NVME_NQN_CURR

From: Hannes Reinecke <hare@suse.de>
Date: 2021-11-29 13:09:45

On 11/28/21 2:03 PM, Sagi Grimberg wrote:
quoted hunk ↗ jump to hunk
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 <sagi@grimberg.me>
---
Changes from v1:
- add break as we don't need the discovery ctrl setting

  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 686a5641aa9c..9207296ba957 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);
Merged with https://github.com/linux-nvme/libnvme

Cheers,

Hannes
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help