@@ -81,8 +81,8 @@ static const char *nvmf_config_file = "Use specified JSON configuration file or
8181 OPT_STRING("transport", 't', "STR", &transport, nvmf_tport), \
8282 OPT_STRING("traddr", 'a', "STR", &traddr, nvmf_traddr), \
8383 OPT_STRING("trsvcid", 's', "STR", &trsvcid, nvmf_trsvcid), \
84- OPT_STRING("host-traddr", 'w', "STR", &host_traddr, nvmf_htraddr), \
85- OPT_STRING("host-iface", 'f', "STR", &host_iface, nvmf_hiface), \
84+ OPT_STRING("host-traddr", 'w', "STR", &c. host_traddr, nvmf_htraddr), \
85+ OPT_STRING("host-iface", 'f', "STR", &c. host_iface, nvmf_hiface), \
8686 OPT_STRING("hostnqn", 'q', "STR", &hostnqn, nvmf_hostnqn), \
8787 OPT_STRING("hostid", 'I', "STR", &hostid, nvmf_hostid), \
8888 OPT_STRING("nqn", 'n', "STR", &subsysnqn, nvmf_nqn), \
@@ -302,7 +302,8 @@ static int __discover(nvme_ctrl_t c, const struct nvme_fabrics_config *defcfg,
302302 __discover (child , defcfg , raw ,
303303 persistent ,
304304 true, flags );
305- if (!persistent ) {
305+ if (e -> subtype != NVME_NQN_NVME &&
306+ !persistent ) {
306307 nvme_disconnect_ctrl (child );
307308 nvme_free_ctrl (child );
308309 }
@@ -325,7 +326,6 @@ static int discover_from_conf_file(nvme_host_t h, const char *desc,
325326 bool connect , const struct nvme_fabrics_config * defcfg )
326327{
327328 char * transport = NULL , * traddr = NULL , * trsvcid = NULL ;
328- char * host_traddr = NULL , * host_iface = NULL ;
329329 char * hostnqn = NULL , * hostid = NULL , * hostkey = NULL , * ctrlkey = NULL ;
330330 char * subsysnqn = NULL ;
331331 char * ptr , * * argv , * p , line [4096 ];
@@ -388,8 +388,8 @@ static int discover_from_conf_file(nvme_host_t h, const char *desc,
388388 if (!transport && !traddr )
389389 goto next ;
390390
391- c = nvme_create_ctrl (subsysnqn , transport ,
392- traddr , host_traddr , host_iface , trsvcid );
391+ c = nvme_create_ctrl (subsysnqn , transport , traddr ,
392+ cfg . host_traddr , cfg . host_iface , trsvcid );
393393 if (!c )
394394 goto next ;
395395 nvme_ctrl_set_discovery_ctrl (c , true);
@@ -415,7 +415,6 @@ int nvmf_discover(const char *desc, int argc, char **argv, bool connect)
415415{
416416 char * subsysnqn = NVME_DISC_SUBSYS_NAME ;
417417 char * hostnqn = NULL , * hostid = NULL , * hostkey = NULL , * ctrlkey = NULL ;
418- char * host_traddr = NULL , * host_iface = NULL ;
419418 char * transport = NULL , * traddr = NULL , * trsvcid = NULL ;
420419 char * hnqn = NULL , * hid = NULL ;
421420 char * config_file = PATH_NVMF_CONFIG ;
@@ -505,12 +504,12 @@ int nvmf_discover(const char *desc, int argc, char **argv, bool connect)
505504 if (strcmp (nvme_ctrl_get_subsysnqn (c ), subsysnqn ) ||
506505 strcmp (nvme_ctrl_get_transport (c ), transport ) ||
507506 strcmp (nvme_ctrl_get_traddr (c ), traddr ) ||
508- (host_traddr && nvme_ctrl_get_host_traddr (c ) &&
507+ (cfg . host_traddr && nvme_ctrl_get_host_traddr (c ) &&
509508 strcmp (nvme_ctrl_get_host_traddr (c ),
510- host_traddr )) ||
511- (host_iface && nvme_ctrl_get_host_iface (c ) &&
509+ cfg . host_traddr )) ||
510+ (cfg . host_iface && nvme_ctrl_get_host_iface (c ) &&
512511 strcmp (nvme_ctrl_get_host_iface (c ),
513- host_iface )) ||
512+ cfg . host_iface )) ||
514513 (trsvcid && nvme_ctrl_get_trsvcid (c ) &&
515514 strcmp (nvme_ctrl_get_trsvcid (c ), trsvcid ))) {
516515 nvme_msg (LOG_WARNING ,
@@ -541,7 +540,7 @@ int nvmf_discover(const char *desc, int argc, char **argv, bool connect)
541540 if (!c ) {
542541 /* No device or non-matching device, create a new controller */
543542 c = nvme_create_ctrl (subsysnqn , transport , traddr ,
544- host_traddr , host_iface , trsvcid );
543+ cfg . host_traddr , cfg . host_iface , trsvcid );
545544 if (!c ) {
546545 ret = errno ;
547546 goto out_free ;
@@ -580,7 +579,6 @@ int nvmf_connect(const char *desc, int argc, char **argv)
580579 char * hnqn = NULL , * hid = NULL ;
581580 char * subsysnqn = NULL ;
582581 char * transport = NULL , * traddr = NULL ;
583- char * host_traddr = NULL , * host_iface = NULL ;
584582 char * trsvcid = NULL , * hostnqn = NULL , * hostid = NULL ;
585583 char * hostkey = NULL , * ctrlkey = NULL ;
586584 char * config_file = PATH_NVMF_CONFIG ;
@@ -669,7 +667,7 @@ int nvmf_connect(const char *desc, int argc, char **argv)
669667 if (hostkey )
670668 nvme_host_set_dhchap_key (h , hostkey );
671669 c = nvme_create_ctrl (subsysnqn , transport , traddr ,
672- host_traddr , host_iface , trsvcid );
670+ cfg . host_traddr , cfg . host_iface , trsvcid );
673671 if (!c ) {
674672 errno = ENOMEM ;
675673 goto out_free ;
0 commit comments