nvmf: spdk_nvmf_tgt_create_subsystem takes a tgt parameter

The user can now specify which target to create the subsystem
on.

Change-Id: I6206c0d762d59ff6312cb58d36180281baaa7266
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/374878
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
This commit is contained in:
Ben Walker 2017-08-18 15:57:03 -07:00 committed by Jim Harris
parent 2fbe26160f
commit 4addb5c899
5 changed files with 17 additions and 13 deletions

View File

@ -202,7 +202,7 @@ nvmf_tgt_create_subsystem(const char *name, enum spdk_nvmf_subtype subtype,
return NULL;
}
subsystem = spdk_nvmf_create_subsystem(name, subtype, app_subsys, connect_cb,
subsystem = spdk_nvmf_create_subsystem(g_tgt, name, subtype, app_subsys, connect_cb,
disconnect_cb);
if (subsystem == NULL) {
SPDK_ERRLOG("Subsystem creation failed\n");

View File

@ -98,7 +98,8 @@ struct spdk_nvmf_listen_addr {
* of controllers. Any individual controller has
* access to all the NVMe device/namespaces maintained by the subsystem.
*/
struct spdk_nvmf_subsystem *spdk_nvmf_create_subsystem(const char *nqn,
struct spdk_nvmf_subsystem *spdk_nvmf_create_subsystem(struct spdk_nvmf_tgt *tgt,
const char *nqn,
enum spdk_nvmf_subtype type,
void *cb_ctx,
spdk_nvmf_subsystem_connect_fn connect_cb,

View File

@ -148,7 +148,8 @@ spdk_nvmf_valid_nqn(const char *nqn)
}
struct spdk_nvmf_subsystem *
spdk_nvmf_create_subsystem(const char *nqn,
spdk_nvmf_create_subsystem(struct spdk_nvmf_tgt *tgt,
const char *nqn,
enum spdk_nvmf_subtype type,
void *cb_ctx,
spdk_nvmf_subsystem_connect_fn connect_cb,
@ -165,11 +166,11 @@ spdk_nvmf_create_subsystem(const char *nqn,
return NULL;
}
subsystem->tgt = &g_nvmf_tgt;
subsystem->tgt = tgt;
subsystem->tgt->current_subsystem_id++;
tgt->current_subsystem_id++;
subsystem->id = subsystem->tgt->current_subsystem_id;
subsystem->id = tgt->current_subsystem_id;
subsystem->subtype = type;
subsystem->cb_ctx = cb_ctx;
subsystem->connect_cb = connect_cb;
@ -179,8 +180,8 @@ spdk_nvmf_create_subsystem(const char *nqn,
TAILQ_INIT(&subsystem->hosts);
TAILQ_INIT(&subsystem->ctrlrs);
TAILQ_INSERT_TAIL(&subsystem->tgt->subsystems, subsystem, entries);
subsystem->tgt->discovery_genctr++;
TAILQ_INSERT_TAIL(&tgt->subsystems, subsystem, entries);
tgt->discovery_genctr++;
return subsystem;
}

View File

@ -196,7 +196,8 @@ test_discovery_log(void)
g_nvmf_tgt.discovery_log_page_size = 0;
/* Add one subsystem and verify that the discovery log contains it */
subsystem = spdk_nvmf_create_subsystem("nqn.2016-06.io.spdk:subsystem1", SPDK_NVMF_SUBTYPE_NVME,
subsystem = spdk_nvmf_create_subsystem(&g_nvmf_tgt, "nqn.2016-06.io.spdk:subsystem1",
SPDK_NVMF_SUBTYPE_NVME,
NULL, NULL, NULL);
SPDK_CU_ASSERT_FATAL(subsystem != NULL);

View File

@ -240,12 +240,13 @@ test_spdk_nvmf_subsystem_add_ns(void)
static void
nvmf_test_create_subsystem(void)
{
struct spdk_nvmf_tgt tgt = {};
char nqn[256];
struct spdk_nvmf_subsystem *subsystem;
TAILQ_INIT(&g_nvmf_tgt.subsystems);
TAILQ_INIT(&tgt.subsystems);
strncpy(nqn, "nqn.2016-06.io.spdk:subsystem1", sizeof(nqn));
subsystem = spdk_nvmf_create_subsystem(nqn, SPDK_NVMF_SUBTYPE_NVME,
subsystem = spdk_nvmf_create_subsystem(&tgt, nqn, SPDK_NVMF_SUBTYPE_NVME,
NULL, NULL, NULL);
SPDK_CU_ASSERT_FATAL(subsystem != NULL);
CU_ASSERT_STRING_EQUAL(subsystem->subnqn, nqn);
@ -256,7 +257,7 @@ nvmf_test_create_subsystem(void)
memset(nqn + strlen(nqn), 'a', 223 - strlen(nqn));
nqn[223] = '\0';
CU_ASSERT(strlen(nqn) == 223);
subsystem = spdk_nvmf_create_subsystem(nqn, SPDK_NVMF_SUBTYPE_NVME,
subsystem = spdk_nvmf_create_subsystem(&tgt, nqn, SPDK_NVMF_SUBTYPE_NVME,
NULL, NULL, NULL);
SPDK_CU_ASSERT_FATAL(subsystem != NULL);
CU_ASSERT_STRING_EQUAL(subsystem->subnqn, nqn);
@ -267,7 +268,7 @@ nvmf_test_create_subsystem(void)
memset(nqn + strlen(nqn), 'a', 224 - strlen(nqn));
nqn[224] = '\0';
CU_ASSERT(strlen(nqn) == 224);
subsystem = spdk_nvmf_create_subsystem(nqn, SPDK_NVMF_SUBTYPE_NVME,
subsystem = spdk_nvmf_create_subsystem(&tgt, nqn, SPDK_NVMF_SUBTYPE_NVME,
NULL, NULL, NULL);
CU_ASSERT(subsystem == NULL);
}