From 524e8fc976c5a71e6b83990db6dce04f0c1f405b Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Fri, 9 Mar 2018 17:13:35 -0700 Subject: [PATCH] nvmf: centralize duplicate subsystem NQN check This should be enforced by the main NVMe-oF target library, not in the event subsystem code. Change-Id: Ibce4fd78710b4a9da374e3d5979df4a16e91533c Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/403380 Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Tested-by: SPDK Automated Test System --- lib/event/subsystems/nvmf/nvmf_tgt.c | 5 ----- lib/nvmf/subsystem.c | 5 +++++ test/unit/lib/nvmf/ctrlr_discovery.c/ctrlr_discovery_ut.c | 6 ++++++ test/unit/lib/nvmf/subsystem.c/subsystem_ut.c | 6 ++++++ 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/lib/event/subsystems/nvmf/nvmf_tgt.c b/lib/event/subsystems/nvmf/nvmf_tgt.c index 85a81404a..c73024b62 100644 --- a/lib/event/subsystems/nvmf/nvmf_tgt.c +++ b/lib/event/subsystems/nvmf/nvmf_tgt.c @@ -88,11 +88,6 @@ nvmf_tgt_create_subsystem(const char *name, enum spdk_nvmf_subtype subtype, uint { struct spdk_nvmf_subsystem *subsystem; - if (spdk_nvmf_tgt_find_subsystem(g_tgt.tgt, name)) { - SPDK_ERRLOG("Subsystem already exist\n"); - return NULL; - } - subsystem = spdk_nvmf_subsystem_create(g_tgt.tgt, name, subtype, num_ns); if (subsystem == NULL) { SPDK_ERRLOG("Subsystem creation failed\n"); diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index d1bc92ee4..ff2306d1d 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -222,6 +222,11 @@ spdk_nvmf_subsystem_create(struct spdk_nvmf_tgt *tgt, struct spdk_nvmf_subsystem *subsystem; uint32_t sid; + if (spdk_nvmf_tgt_find_subsystem(tgt, nqn)) { + SPDK_ERRLOG("Subsystem NQN '%s' already exists\n", nqn); + return NULL; + } + if (!spdk_nvmf_valid_nqn(nqn)) { return NULL; } diff --git a/test/unit/lib/nvmf/ctrlr_discovery.c/ctrlr_discovery_ut.c b/test/unit/lib/nvmf/ctrlr_discovery.c/ctrlr_discovery_ut.c index 94481a812..676729c00 100644 --- a/test/unit/lib/nvmf/ctrlr_discovery.c/ctrlr_discovery_ut.c +++ b/test/unit/lib/nvmf/ctrlr_discovery.c/ctrlr_discovery_ut.c @@ -105,6 +105,12 @@ spdk_nvmf_transport_create(struct spdk_nvmf_tgt *tgt, return NULL; } +struct spdk_nvmf_subsystem * +spdk_nvmf_tgt_find_subsystem(struct spdk_nvmf_tgt *tgt, const char *subnqn) +{ + return NULL; +} + struct spdk_nvmf_transport * spdk_nvmf_tgt_get_transport(struct spdk_nvmf_tgt *tgt, enum spdk_nvme_transport_type trtype) { diff --git a/test/unit/lib/nvmf/subsystem.c/subsystem_ut.c b/test/unit/lib/nvmf/subsystem.c/subsystem_ut.c index bcf4fcc1e..8499af725 100644 --- a/test/unit/lib/nvmf/subsystem.c/subsystem_ut.c +++ b/test/unit/lib/nvmf/subsystem.c/subsystem_ut.c @@ -92,6 +92,12 @@ spdk_nvmf_transport_create(struct spdk_nvmf_tgt *tgt, return NULL; } +struct spdk_nvmf_subsystem * +spdk_nvmf_tgt_find_subsystem(struct spdk_nvmf_tgt *tgt, const char *subnqn) +{ + return NULL; +} + struct spdk_nvmf_transport * spdk_nvmf_tgt_get_transport(struct spdk_nvmf_tgt *tgt, enum spdk_nvme_transport_type trtype) {