]> www.infradead.org Git - users/sagi/nvme-cli.git/commitdiff
fabrics: Do no modify default config for discovery controller
authorDaniel Wagner <dwagner@suse.de>
Fri, 8 Apr 2022 11:58:01 +0000 (13:58 +0200)
committerDaniel Wagner <dwagner@suse.de>
Fri, 8 Apr 2022 12:21:07 +0000 (14:21 +0200)
When a discovery controller is setup we are currently modifying the
default config. As this configuration might also be used for normal
I/O controllers don't modify it permanently.

Signed-off-by: Daniel Wagner <dwagner@suse.de>
fabrics.c

index e06ec19cc3b38abdead92ccddcd2b51b1cf00db7..71e15bc1e75dfd9b79c8b9f507b0594b846a80d4 100644 (file)
--- a/fabrics.c
+++ b/fabrics.c
@@ -115,24 +115,33 @@ static void space_strip_len(int max, char *str)
        }
 }
 
-static void set_discovery_kato(struct nvme_fabrics_config *cfg)
+static int set_discovery_kato(struct nvme_fabrics_config *cfg)
 {
+       int tmo = cfg->keep_alive_tmo;
+
        /* Set kato to NVMF_DEF_DISC_TMO for persistent controllers */
        if (persistent && !cfg->keep_alive_tmo)
                cfg->keep_alive_tmo = NVMF_DEF_DISC_TMO;
        /* Set kato to zero for non-persistent controllers */
        else if (!persistent && (cfg->keep_alive_tmo > 0))
                cfg->keep_alive_tmo = 0;
+
+       return tmo;
 }
 
 static int add_discovery_ctrl(nvme_host_t h, nvme_ctrl_t c,
                              struct nvme_fabrics_config *cfg)
 {
+       int tmo, ret;
+
        nvme_ctrl_set_discovery_ctrl(c, true);
-       set_discovery_kato(cfg);
+       tmo = set_discovery_kato(cfg);
 
        errno = 0;
-       return nvmf_add_ctrl(h, c, cfg);
+       ret = nvmf_add_ctrl(h, c, cfg);
+
+       cfg->keep_alive_tmo = tmo;
+       return ret;
 }
 
 static void print_discovery_log(struct nvmf_discovery_log *log, int numrec)
@@ -492,8 +501,6 @@ static int discover_from_conf_file(nvme_root_t r, nvme_host_t h,
                if (!transport && !traddr)
                        goto next;
 
-               set_discovery_kato(&cfg);
-
                if (!force) {
                        c = lookup_discover_ctrl(r, transport, traddr,
                                                 cfg.host_traddr, cfg.host_iface,
@@ -586,8 +593,6 @@ int nvmf_discover(const char *desc, int argc, char **argv, bool connect)
                return ret;
        }
 
-       set_discovery_kato(&cfg);
-
        if (!hostnqn)
                hostnqn = hnqn = nvmf_hostnqn_from_file();
        if (!hostnqn)