From b3eff95f7645413978c6fdc3996ef91b5d3ee87a Mon Sep 17 00:00:00 2001 From: Daniel Verkamp Date: Fri, 29 Dec 2017 10:57:20 -0700 Subject: [PATCH] bdev/error: add bdev_part hotremove callback The error vbdev was missing a remove_cb, so unregistering its base bdev would cause issues later since the error vbdev would not get torn down. Change-Id: I6d94f67ce0d4f20a7a63c902b11d965115481df7 Signed-off-by: Daniel Verkamp Reviewed-on: https://review.gerrithub.io/393264 Tested-by: SPDK Automated Test System Reviewed-by: Ben Walker Reviewed-by: Jim Harris --- lib/bdev/error/vbdev_error.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/bdev/error/vbdev_error.c b/lib/bdev/error/vbdev_error.c index de5d35b6a..972591b39 100644 --- a/lib/bdev/error/vbdev_error.c +++ b/lib/bdev/error/vbdev_error.c @@ -213,6 +213,12 @@ static struct spdk_bdev_fn_table vbdev_error_fn_table = { .dump_config_json = vbdev_error_dump_config_json, }; +static void +spdk_vbdev_error_base_bdev_hotremove_cb(void *_base_bdev) +{ + spdk_bdev_part_base_hotremove(_base_bdev, &g_error_disks); +} + int spdk_vbdev_error_create(struct spdk_bdev *base_bdev) { @@ -227,7 +233,8 @@ spdk_vbdev_error_create(struct spdk_bdev *base_bdev) return -1; } - rc = spdk_bdev_part_base_construct(base, base_bdev, NULL, + rc = spdk_bdev_part_base_construct(base, base_bdev, + spdk_vbdev_error_base_bdev_hotremove_cb, SPDK_GET_BDEV_MODULE(error), &vbdev_error_fn_table, &g_error_disks, spdk_error_free_base, sizeof(struct error_channel), NULL, NULL);