Commit 17da6b81 authored by Jim Harris's avatar Jim Harris
Browse files

bdev/split: simplify code



This removes some functions that were only called from
one place, to reduce the number of functions that will
need to get moved to the common bdev library in a future
patch.

Signed-off-by: default avatarJim Harris <james.r.harris@intel.com>
Change-Id: Ieaaf9f1fdc907591902ce543024d547a70d00b7f

Reviewed-on: https://review.gerrithub.io/376422


Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarBen Walker <benjamin.walker@intel.com>
Reviewed-by: default avatarCunyin Chang <cunyin.chang@intel.com>
Reviewed-by: default avatarZiye Yang <optimistyzy@gmail.com>
parent e2a3f1cc
Loading
Loading
Loading
Loading
+6 −21
Original line number Diff line number Diff line
@@ -136,13 +136,6 @@ vbdev_split_submit_request(struct spdk_io_channel *ch, struct spdk_bdev_io *bdev
	}
}

static void
vbdev_split_base_get_ref(struct split_base *split_base, struct split_disk *split_disk)
{
	__sync_fetch_and_add(&split_base->ref, 1);
	split_disk->base = split_base;
}

static void
vbdev_split_base_free(struct split_base *split_base)
{
@@ -153,22 +146,13 @@ vbdev_split_base_free(struct split_base *split_base)
	free(split_base);
}

static void
vbdev_split_base_put_ref(struct split_base *split_base)
{
	if (__sync_sub_and_fetch(&split_base->ref, 1) == 0) {
		vbdev_split_base_free(split_base);
	}
}

static void
vbdev_split_free(struct split_disk *split_disk)
{
	struct split_base *split_base;

	if (!split_disk) {
		return;
	}
	assert(split_disk);
	assert(split_disk->base);

	split_base = split_disk->base;

@@ -177,8 +161,8 @@ vbdev_split_free(struct split_disk *split_disk)
	free(split_disk->disk.name);
	free(split_disk);

	if (split_base) {
		vbdev_split_base_put_ref(split_base);
	if (__sync_sub_and_fetch(&split_base->ref, 1) == 0) {
		vbdev_split_base_free(split_base);
	}
}

@@ -363,7 +347,8 @@ vbdev_split_create(struct spdk_bdev *base_bdev, uint64_t split_count, uint64_t s
			      " offset_blocks: %" PRIu64 "\n",
			      d->disk.name, spdk_bdev_get_name(base_bdev), d->offset_blocks);

		vbdev_split_base_get_ref(split_base, d);
		__sync_fetch_and_add(&split_base->ref, 1);
		d->base = split_base;

		spdk_io_device_register(&d->base, split_channel_create_cb, split_channel_destroy_cb,
					sizeof(struct split_channel));