From: Daniel Wagner Date: Thu, 26 Jan 2023 13:36:56 +0000 (+0100) Subject: fabrics: Fix discovery controller filter function X-Git-Tag: v2.3~5^2~2 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=cd7a414018c7b7f1267d25d6e3f173848265bfbb;p=users%2Fsagi%2Fnvme-cli.git fabrics: Fix discovery controller filter function 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 --- diff --git a/fabrics.c b/fabrics.c index 8c19b07e..1bb2a052 100644 --- 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;