From 3c7280cbb60b1151323bee46585f8e7ee57bed5c Mon Sep 17 00:00:00 2001 From: Daniel Wagner Date: Fri, 8 Apr 2022 13:58:01 +0200 Subject: [PATCH] fabrics: Do no modify default config for discovery controller 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 --- fabrics.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/fabrics.c b/fabrics.c index e06ec19c..71e15bc1 100644 --- 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) -- 2.50.1