From 516639cf37289b20bbe82a8f570d50a0bd0bfa2d Mon Sep 17 00:00:00 2001 From: Jim Harris Date: Thu, 4 May 2023 18:52:13 +0000 Subject: [PATCH] nvmf: use iterator APIs in nvmf_tgt_create_poll_group() Signed-off-by: Jim Harris Change-Id: I4d9a5dd4655edb8315503e7551aec1926d1cc017 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/17959 Reviewed-by: Aleksey Marchuk Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Konrad Sztyber Reviewed-by: Shuhei Matsumoto --- lib/nvmf/nvmf.c | 13 ++++--------- test/unit/lib/nvmf/nvmf.c/nvmf_ut.c | 2 ++ 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/lib/nvmf/nvmf.c b/lib/nvmf/nvmf.c index a24d94442..e96d44d41 100644 --- a/lib/nvmf/nvmf.c +++ b/lib/nvmf/nvmf.c @@ -170,8 +170,8 @@ nvmf_tgt_create_poll_group(void *io_device, void *ctx_buf) struct spdk_nvmf_tgt *tgt = io_device; struct spdk_nvmf_poll_group *group = ctx_buf; struct spdk_nvmf_transport *transport; + struct spdk_nvmf_subsystem *subsystem; struct spdk_thread *thread = spdk_get_thread(); - uint32_t sid; int rc; group->tgt = tgt; @@ -199,14 +199,9 @@ nvmf_tgt_create_poll_group(void *io_device, void *ctx_buf) return -ENOMEM; } - for (sid = 0; sid < tgt->max_subsystems; sid++) { - struct spdk_nvmf_subsystem *subsystem; - - subsystem = tgt->subsystems[sid]; - if (!subsystem) { - continue; - } - + for (subsystem = spdk_nvmf_subsystem_get_first(tgt); + subsystem != NULL; + subsystem = spdk_nvmf_subsystem_get_next(subsystem)) { if (nvmf_poll_group_add_subsystem(group, subsystem, NULL, NULL) != 0) { nvmf_tgt_cleanup_poll_group(group); return -1; diff --git a/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c b/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c index 2df1d94cc..3ac30398e 100644 --- a/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c +++ b/test/unit/lib/nvmf/nvmf.c/nvmf_ut.c @@ -163,6 +163,7 @@ test_nvmf_tgt_create_poll_group(void) tgt.subsystems[0]->max_nsid = 1; tgt.subsystems[0]->ns = calloc(1, sizeof(struct spdk_nvmf_ns *)); SPDK_CU_ASSERT_FATAL(tgt.subsystems[0]->ns != NULL); + MOCK_SET(spdk_nvmf_subsystem_get_first, &subsystem); tgt.subsystems[0]->ns[0] = &ns; ns.crkey = 0xaa; @@ -201,6 +202,7 @@ test_nvmf_tgt_create_poll_group(void) CU_ASSERT(tgt.num_poll_groups == 0); free(tgt.subsystems[0]->ns); free(tgt.subsystems); + MOCK_CLEAR(spdk_nvmf_subsystem_get_first); spdk_thread_exit(thread); while (!spdk_thread_is_exited(thread)) {