Commit 4addb5c8 authored by Ben Walker's avatar Ben Walker Committed by Jim Harris
Browse files

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: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/374878


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
parent 2fbe2616
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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");
+2 −1
Original line number Diff line number Diff line
@@ -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,
+7 −6
Original line number Diff line number Diff line
@@ -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;
}
+2 −1
Original line number Diff line number Diff line
@@ -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);

+5 −4
Original line number Diff line number Diff line
@@ -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);
}