bdev/null: free global resources on module finish
Also, don't try to remove any bdevs. The bdev layer does that before module fini is even started. Change-Id: I869f4b9e6d8590bfae2504a96d971c4f8866aeb9 Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Reviewed-on: https://review.gerrithub.io/420577 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
ecb44872b6
commit
47f1db1344
@ -66,6 +66,7 @@ static struct spdk_bdev_module null_if = {
|
||||
.module_init = bdev_null_initialize,
|
||||
.module_fini = bdev_null_finish,
|
||||
.config_text = bdev_null_get_spdk_running_config,
|
||||
.async_fini = true,
|
||||
};
|
||||
|
||||
SPDK_BDEV_MODULE_REGISTER(&null_if)
|
||||
@ -350,14 +351,17 @@ end:
|
||||
return rc;
|
||||
}
|
||||
|
||||
static void
|
||||
_bdev_null_finish_cb(void *arg)
|
||||
{
|
||||
spdk_dma_free(g_null_read_buf);
|
||||
spdk_bdev_module_finish_done();
|
||||
}
|
||||
|
||||
static void
|
||||
bdev_null_finish(void)
|
||||
{
|
||||
struct null_bdev *bdev, *tmp;
|
||||
|
||||
TAILQ_FOREACH_SAFE(bdev, &g_null_bdev_head, tailq, tmp) {
|
||||
spdk_bdev_unregister(&bdev->bdev, NULL, NULL);
|
||||
}
|
||||
spdk_io_device_unregister(&g_null_bdev_head, _bdev_null_finish_cb);
|
||||
}
|
||||
|
||||
static void
|
||||
|
Loading…
Reference in New Issue
Block a user