diff --git a/module/event/subsystems/nvmf/conf.c b/module/event/subsystems/nvmf/conf.c index d10b5f52a..873351ff5 100644 --- a/module/event/subsystems/nvmf/conf.c +++ b/module/event/subsystems/nvmf/conf.c @@ -43,23 +43,6 @@ #define SPDK_NVMF_MAX_NAMESPACES (1 << 14) -static int -nvmf_add_discovery_subsystem(void) -{ - struct spdk_nvmf_subsystem *subsystem; - - subsystem = spdk_nvmf_subsystem_create(g_spdk_nvmf_tgt, SPDK_NVMF_DISCOVERY_NQN, - SPDK_NVMF_SUBTYPE_DISCOVERY, 0); - if (subsystem == NULL) { - SPDK_ERRLOG("Failed creating discovery nvmf library subsystem\n"); - return -1; - } - - spdk_nvmf_subsystem_set_allow_any_host(subsystem, true); - - return 0; -} - static void nvmf_read_config_file_tgt_max_subsystems(struct spdk_conf_section *sp, int *deprecated_values) @@ -157,7 +140,6 @@ nvmf_parse_tgt_conf(void) static int nvmf_parse_nvmf_tgt(void) { - int rc; int using_deprecated_options; if (!g_spdk_nvmf_tgt_max_subsystems) { @@ -179,12 +161,6 @@ nvmf_parse_nvmf_tgt(void) return -1; } - rc = nvmf_add_discovery_subsystem(); - if (rc != 0) { - SPDK_ERRLOG("nvmf_add_discovery_subsystem failed\n"); - return rc; - } - return 0; } diff --git a/module/event/subsystems/nvmf/nvmf_tgt.c b/module/event/subsystems/nvmf/nvmf_tgt.c index eff1c7e61..89e9e83f2 100644 --- a/module/event/subsystems/nvmf/nvmf_tgt.c +++ b/module/event/subsystems/nvmf/nvmf_tgt.c @@ -262,6 +262,23 @@ nvmf_tgt_parse_conf_done(int status) nvmf_tgt_advance_state(); } +static int +nvmf_add_discovery_subsystem(void) +{ + struct spdk_nvmf_subsystem *subsystem; + + subsystem = spdk_nvmf_subsystem_create(g_spdk_nvmf_tgt, SPDK_NVMF_DISCOVERY_NQN, + SPDK_NVMF_SUBTYPE_DISCOVERY, 0); + if (subsystem == NULL) { + SPDK_ERRLOG("Failed creating discovery nvmf library subsystem\n"); + return -1; + } + + spdk_nvmf_subsystem_set_allow_any_host(subsystem, true); + + return 0; +} + static void nvmf_tgt_parse_conf_start(void *ctx) { @@ -282,6 +299,11 @@ nvmf_tgt_parse_conf_start(void *ctx) goto error; } + if (nvmf_add_discovery_subsystem() != 0) { + SPDK_ERRLOG("nvmf_add_discovery_subsystem failed\n"); + goto error; + } + return; error: