Commit 99ba2b25 authored by Maciej Szwed's avatar Maciej Szwed Committed by Jim Harris
Browse files

lvol: hotremove support



This patch adds hotremove support of lvol base bdev

Signed-off-by: default avatarMaciej Szwed <maciej.szwed@intel.com>
Change-Id: I04dc7a0cc73fd6959824873f354d5c7db8c09a9b
Reviewed-on: https://review.gerrithub.io/379348


Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
parent 4338d3c9
Loading
Loading
Loading
Loading
+16 −1
Original line number Diff line number Diff line
@@ -43,6 +43,21 @@ SPDK_DECLARE_BDEV_MODULE(lvol);
static TAILQ_HEAD(, lvol_store_bdev) g_spdk_lvol_pairs = TAILQ_HEAD_INITIALIZER(
			g_spdk_lvol_pairs);

static void
vbdev_lvs_hotremove_cb(void *ctx)
{
	struct spdk_bdev *bdev = ctx;
	struct lvol_store_bdev *lvs_bdev, *tmp;

	TAILQ_FOREACH_SAFE(lvs_bdev, &g_spdk_lvol_pairs, lvol_stores, tmp) {
		if (lvs_bdev) {
			if (lvs_bdev->bdev == bdev) {
				vbdev_lvs_destruct(lvs_bdev->lvs, NULL, NULL);
			}
		}
	}
}

static void
_vbdev_lvs_create_cb(void *cb_arg, struct spdk_lvol_store *lvs, int lvserrno)
{
@@ -91,7 +106,7 @@ vbdev_lvs_create(struct spdk_bdev *base_bdev,
		return -ENOMEM;
	}

	bs_dev = spdk_bdev_create_bs_dev(base_bdev, NULL, NULL);
	bs_dev = spdk_bdev_create_bs_dev(base_bdev, vbdev_lvs_hotremove_cb, base_bdev);
	if (!bs_dev) {
		SPDK_ERRLOG("Cannot create blobstore device\n");
		free(lvs_req);