]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
fabrics: Fix discovery controller filter function
authorDaniel Wagner <dwagner@suse.de>
Thu, 26 Jan 2023 13:36:56 +0000 (14:36 +0100)
committerDaniel Wagner <dwagner@suse.de>
Thu, 26 Jan 2023 13:36:56 +0000 (14:36 +0100)
disc_ctrl_config_match() should also test if the controller is actually
a discovery controller. Because of that ctrl_config_match() can't call
disc_ctrl_config_match() anymore.

Fixes: 07d6b911e081 ("fabrics: Do not attempt to reconnect to already connected ctrls")
Signed-off-by: Daniel Wagner <dwagner@suse.de>
fabrics.c

index 8c19b07e6246f908d1bb4cb882839ca8b87ea8e2..1bb2a0528ad6f07ef6fbead53f974b61817bc538 100644 (file)
--- a/fabrics.c
+++ b/fabrics.c
@@ -158,7 +158,8 @@ static bool is_persistent_discovery_ctrl(nvme_host_t h, nvme_ctrl_t c)
 
 static bool disc_ctrl_config_match(nvme_ctrl_t c, struct tr_config *trcfg)
 {
-       if (!strcmp0(nvme_ctrl_get_transport(c), trcfg->transport) &&
+       if (nvme_ctrl_is_discovery_ctrl(c) &&
+           !strcmp0(nvme_ctrl_get_transport(c), trcfg->transport) &&
            !strcasecmp0(nvme_ctrl_get_traddr(c), trcfg->traddr) &&
            !strcmp0(nvme_ctrl_get_trsvcid(c), trcfg->trsvcid) &&
            !strcmp0(nvme_ctrl_get_host_traddr(c), trcfg->host_traddr) &&
@@ -171,7 +172,11 @@ static bool disc_ctrl_config_match(nvme_ctrl_t c, struct tr_config *trcfg)
 static bool ctrl_config_match(nvme_ctrl_t c, struct tr_config *trcfg)
 {
        if (!strcmp0(nvme_ctrl_get_subsysnqn(c), trcfg->subsysnqn) &&
-           disc_ctrl_config_match(c, trcfg))
+           !strcmp0(nvme_ctrl_get_transport(c), trcfg->transport) &&
+           !strcasecmp0(nvme_ctrl_get_traddr(c), trcfg->traddr) &&
+           !strcmp0(nvme_ctrl_get_trsvcid(c), trcfg->trsvcid) &&
+           !strcmp0(nvme_ctrl_get_host_traddr(c), trcfg->host_traddr) &&
+           !strcmp0(nvme_ctrl_get_host_iface(c), trcfg->host_iface))
                return true;
 
        return false;