diff --git a/lib/bdev/bdev.c b/lib/bdev/bdev.c index 270458f8f..4cf4bf1fd 100644 --- a/lib/bdev/bdev.c +++ b/lib/bdev/bdev.c @@ -1134,6 +1134,16 @@ spdk_bdev_module_finish_iter(void *arg) { struct spdk_bdev_module *bdev_module; + /* FIXME: Handling initialization failures is broken now, + * so we won't even try cleaning up after successfully + * initialized modules. if module_init_complete is false, + * just call spdk_bdev_mgr_unregister_cb + */ + if (!g_bdev_mgr.module_init_complete) { + spdk_bdev_mgr_unregister_cb(NULL); + return; + } + /* Start iterating from the last touched module */ if (!g_resume_bdev_module) { bdev_module = TAILQ_LAST(&g_bdev_mgr.bdev_modules, bdev_module_list);