subsystem/nvmf: move target creation out of conf.c

This is a step to prepare for deletion of conf.c.

NVMe-oF target application always creates the default 'nvmf_tgt'.
This was done as part of legacy configuration parsing, but does
not belong there at all.

Acceptor poll rate and max subsystems are set via RPC before this
step, or via legacy config. Since this patch creates target before
parsing the config, options defined there no longer change the target.

Parsing of legacy config will be removed further down the series,
so no need to refactor to keep the original functionality.

Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Change-Id: I6f87df0ad3f03b72d6f916de50e5eab6d29dafa9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4663
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
Tomasz Zawadzki 2020-10-14 05:36:36 -04:00 committed by Jim Harris
parent 6caba3e63b
commit c3dd7e10a7
2 changed files with 22 additions and 19 deletions

View File

@ -43,8 +43,6 @@
#define SPDK_NVMF_MAX_NAMESPACES (1 << 14)
uint32_t g_spdk_nvmf_tgt_max_subsystems = 0;
static int
nvmf_add_discovery_subsystem(void)
{
@ -161,10 +159,6 @@ nvmf_parse_nvmf_tgt(void)
{
int rc;
int using_deprecated_options;
struct spdk_nvmf_target_opts opts = {
.name = "nvmf_tgt",
.max_subsystems = 0
};
if (!g_spdk_nvmf_tgt_max_subsystems) {
using_deprecated_options = nvmf_parse_tgt_max_subsystems();
@ -178,22 +172,13 @@ nvmf_parse_nvmf_tgt(void)
}
}
/* max_subsystems and acceptor_poll_rate options from config file are now disregarded.
* The function bellow does practically nothing. */
if (nvmf_parse_tgt_conf() != 0) {
SPDK_ERRLOG("nvmf_parse_tgt_conf() failed\n");
return -1;
}
opts.max_subsystems = g_spdk_nvmf_tgt_max_subsystems;
opts.acceptor_poll_rate = g_spdk_nvmf_tgt_conf.acceptor_poll_rate;
g_spdk_nvmf_tgt = spdk_nvmf_tgt_create(&opts);
g_spdk_nvmf_tgt_max_subsystems = 0;
if (!g_spdk_nvmf_tgt) {
SPDK_ERRLOG("spdk_nvmf_tgt_create() failed\n");
return -1;
}
rc = nvmf_add_discovery_subsystem();
if (rc != 0) {
SPDK_ERRLOG("nvmf_add_discovery_subsystem failed\n");

View File

@ -66,6 +66,7 @@ struct spdk_nvmf_tgt_conf g_spdk_nvmf_tgt_conf = {
};
struct spdk_nvmf_tgt *g_spdk_nvmf_tgt = NULL;
uint32_t g_spdk_nvmf_tgt_max_subsystems = 0;
static enum nvmf_tgt_state g_tgt_state;
@ -264,11 +265,28 @@ nvmf_tgt_parse_conf_done(int status)
static void
nvmf_tgt_parse_conf_start(void *ctx)
{
struct spdk_nvmf_target_opts opts = {
.name = "nvmf_tgt"
};
opts.max_subsystems = g_spdk_nvmf_tgt_max_subsystems;
opts.acceptor_poll_rate = g_spdk_nvmf_tgt_conf.acceptor_poll_rate;
g_spdk_nvmf_tgt = spdk_nvmf_tgt_create(&opts);
if (!g_spdk_nvmf_tgt) {
SPDK_ERRLOG("spdk_nvmf_tgt_create() failed\n");
goto error;
}
if (nvmf_parse_conf(nvmf_tgt_parse_conf_done)) {
SPDK_ERRLOG("nvmf_parse_conf() failed\n");
g_tgt_state = NVMF_TGT_ERROR;
nvmf_tgt_advance_state();
goto error;
}
return;
error:
g_tgt_state = NVMF_TGT_ERROR;
nvmf_tgt_advance_state();
}
static void