From cc8e4443e5a35408622984fea3e7fe49909984d3 Mon Sep 17 00:00:00 2001 From: Tomasz Zawadzki Date: Mon, 23 Nov 2020 08:16:38 -0500 Subject: [PATCH] lib/bdev: refactor out checking for module actions This patch moves out check for all module actions to finish. It will be used further down in the series for new RPC and as new bdev API. Signed-off-by: Tomasz Zawadzki Change-Id: I24ff40de70f5ed1c8582e60dc23146d7bf9380fd Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5212 Community-CI: Broadcom CI Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins Reviewed-by: Reviewed-by: Jim Harris Reviewed-by: Shuhei Matsumoto Reviewed-by: Aleksey Marchuk --- lib/bdev/bdev.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 3b9728e80..d92e140f1 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -1192,11 +1192,22 @@ bdev_init_complete(int rc) cb_fn(cb_arg, rc); } -static void -bdev_module_action_complete(void) +static bool +bdev_module_all_actions_completed(void) { struct spdk_bdev_module *m; + TAILQ_FOREACH(m, &g_bdev_mgr.bdev_modules, internal.tailq) { + if (m->internal.action_in_progress > 0) { + return false; + } + } + return true; +} + +static void +bdev_module_action_complete(void) +{ /* * Don't finish bdev subsystem initialization if * module pre-initialization is still in progress, or @@ -1211,10 +1222,8 @@ bdev_module_action_complete(void) * exist, return immediately since we cannot finish bdev subsystem * initialization until all are completed. */ - TAILQ_FOREACH(m, &g_bdev_mgr.bdev_modules, internal.tailq) { - if (m->internal.action_in_progress > 0) { - return; - } + if (!bdev_module_all_actions_completed()) { + return; } /*