Commit 47f1db13 authored by Dariusz Stojaczyk's avatar Dariusz Stojaczyk Committed by Jim Harris
Browse files

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: default avatarDariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/420577


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarChangpeng Liu <changpeng.liu@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent ecb44872
Loading
Loading
Loading
Loading
+9 −5
Original line number Diff line number Diff line
@@ -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)
@@ -351,13 +352,16 @@ end:
}

static void
bdev_null_finish(void)
_bdev_null_finish_cb(void *arg)
{
	struct null_bdev *bdev, *tmp;

	TAILQ_FOREACH_SAFE(bdev, &g_null_bdev_head, tailq, tmp) {
		spdk_bdev_unregister(&bdev->bdev, NULL, NULL);
	spdk_dma_free(g_null_read_buf);
	spdk_bdev_module_finish_done();
}

static void
bdev_null_finish(void)
{
	spdk_io_device_unregister(&g_null_bdev_head, _bdev_null_finish_cb);
}

static void