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:
parent
6caba3e63b
commit
c3dd7e10a7
@ -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");
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user