From 360d3813b0e2e5719e7d46f4b138d0da4a183ee5 Mon Sep 17 00:00:00 2001 From: GangCao Date: Fri, 3 Mar 2017 12:24:16 +0800 Subject: [PATCH] nvmf: add the unique subsystem id Change-Id: I0369b7462a12aec76d52dd357d72989886de5a54 Signed-off-by: GangCao --- include/spdk/nvmf.h | 1 + lib/nvmf/nvmf.c | 1 + lib/nvmf/nvmf_internal.h | 1 + lib/nvmf/subsystem.c | 3 +++ 4 files changed, 6 insertions(+) diff --git a/include/spdk/nvmf.h b/include/spdk/nvmf.h index 5540f1b7a..02dfddf9c 100644 --- a/include/spdk/nvmf.h +++ b/include/spdk/nvmf.h @@ -126,6 +126,7 @@ struct spdk_nvmf_subsystem_allowed_listener { * access to all the NVMe device/namespaces maintained by the subsystem. */ struct spdk_nvmf_subsystem { + uint32_t id; uint32_t lcore; char subnqn[SPDK_NVMF_NQN_MAX_LEN]; enum spdk_nvmf_subsystem_mode mode; diff --git a/lib/nvmf/nvmf.c b/lib/nvmf/nvmf.c index db3bb68de..2bd4c0ae1 100644 --- a/lib/nvmf/nvmf.c +++ b/lib/nvmf/nvmf.c @@ -61,6 +61,7 @@ spdk_nvmf_tgt_init(uint16_t max_queue_depth, uint16_t max_queues_per_sess, g_nvmf_tgt.discovery_genctr = 0; g_nvmf_tgt.discovery_log_page = NULL; g_nvmf_tgt.discovery_log_page_size = 0; + g_nvmf_tgt.current_subsystem_id = 0; TAILQ_INIT(&g_nvmf_tgt.subsystems); TAILQ_INIT(&g_nvmf_tgt.listen_addrs); diff --git a/lib/nvmf/nvmf_internal.h b/lib/nvmf/nvmf_internal.h index e87f2c8c7..214fe4be9 100644 --- a/lib/nvmf/nvmf_internal.h +++ b/lib/nvmf/nvmf_internal.h @@ -56,6 +56,7 @@ struct spdk_nvmf_tgt { struct spdk_nvmf_discovery_log_page *discovery_log_page; size_t discovery_log_page_size; TAILQ_HEAD(, spdk_nvmf_listen_addr) listen_addrs; + uint32_t current_subsystem_id; }; extern struct spdk_nvmf_tgt g_nvmf_tgt; diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index 6176ede47..17e85ec2f 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -193,6 +193,9 @@ spdk_nvmf_create_subsystem(const char *nqn, return NULL; } + g_nvmf_tgt.current_subsystem_id++; + + subsystem->id = g_nvmf_tgt.current_subsystem_id; subsystem->subtype = type; subsystem->mode = mode; subsystem->cb_ctx = cb_ctx;