From 0f15edee2ddebe45a73a4222a40ff79f35931a5b Mon Sep 17 00:00:00 2001 From: Changpeng Liu Date: Wed, 28 Mar 2018 09:05:49 +0800 Subject: [PATCH] nvmf: factor out namespace change helper function Change-Id: Iaeaf308bc2135cf94a3e1fd94c3c5d56f8a2f86e Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/405130 Reviewed-by: Changpeng Liu Reviewed-by: Shuhei Matsumoto Reviewed-by: Ben Walker Tested-by: SPDK Automated Test System --- lib/nvmf/subsystem.c | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/lib/nvmf/subsystem.c b/lib/nvmf/subsystem.c index 926144300..ada009460 100644 --- a/lib/nvmf/subsystem.c +++ b/lib/nvmf/subsystem.c @@ -810,11 +810,20 @@ spdk_nvmf_listener_get_trid(struct spdk_nvmf_listener *listener) return &listener->trid; } +static void +spdk_nvmf_subsystem_ns_changed(struct spdk_nvmf_subsystem *subsystem, uint32_t nsid) +{ + struct spdk_nvmf_ctrlr *ctrlr; + + TAILQ_FOREACH(ctrlr, &subsystem->ctrlrs, link) { + spdk_nvmf_ctrlr_async_event_ns_notice(ctrlr); + } +} + int spdk_nvmf_subsystem_remove_ns(struct spdk_nvmf_subsystem *subsystem, uint32_t nsid) { struct spdk_nvmf_ns *ns; - struct spdk_nvmf_ctrlr *ctrlr, *ctrlr_tmp; assert(subsystem->state == SPDK_NVMF_SUBSYSTEM_PAUSED || subsystem->state == SPDK_NVMF_SUBSYSTEM_INACTIVE); @@ -839,9 +848,7 @@ spdk_nvmf_subsystem_remove_ns(struct spdk_nvmf_subsystem *subsystem, uint32_t ns free(ns); subsystem->num_allocated_nsid--; - TAILQ_FOREACH_SAFE(ctrlr, &subsystem->ctrlrs, link, ctrlr_tmp) { - spdk_nvmf_ctrlr_async_event_ns_notice(ctrlr); - } + spdk_nvmf_subsystem_ns_changed(subsystem, nsid); return 0; } @@ -882,7 +889,6 @@ spdk_nvmf_subsystem_add_ns(struct spdk_nvmf_subsystem *subsystem, struct spdk_bd { struct spdk_nvmf_ns_opts opts; struct spdk_nvmf_ns *ns; - struct spdk_nvmf_ctrlr *ctrlr, *ctrlr_tmp; uint32_t i; int rc; @@ -971,10 +977,6 @@ spdk_nvmf_subsystem_add_ns(struct spdk_nvmf_subsystem *subsystem, struct spdk_bd } subsystem->ns[opts.nsid - 1] = ns; - TAILQ_FOREACH_SAFE(ctrlr, &subsystem->ctrlrs, link, ctrlr_tmp) { - spdk_nvmf_ctrlr_async_event_ns_notice(ctrlr); - } - SPDK_DEBUGLOG(SPDK_LOG_NVMF, "Subsystem %s: bdev %s assigned nsid %" PRIu32 "\n", spdk_nvmf_subsystem_get_nqn(subsystem), spdk_bdev_get_name(bdev), @@ -983,6 +985,8 @@ spdk_nvmf_subsystem_add_ns(struct spdk_nvmf_subsystem *subsystem, struct spdk_bd subsystem->max_nsid = spdk_max(subsystem->max_nsid, opts.nsid); subsystem->num_allocated_nsid++; + spdk_nvmf_subsystem_ns_changed(subsystem, opts.nsid); + return opts.nsid; }