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: Jim Harris <james.r.harris@intel.com> Change-Id: Ieaaf9f1fdc907591902ce543024d547a70d00b7f Reviewed-on: https://review.gerrithub.io/376422 Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Cunyin Chang <cunyin.chang@intel.com> Reviewed-by: Ziye Yang <optimistyzy@gmail.com>
This commit is contained in:
parent
e2a3f1cc6e
commit
17da6b81d1
@ -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
|
static void
|
||||||
vbdev_split_base_free(struct split_base *split_base)
|
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);
|
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
|
static void
|
||||||
vbdev_split_free(struct split_disk *split_disk)
|
vbdev_split_free(struct split_disk *split_disk)
|
||||||
{
|
{
|
||||||
struct split_base *split_base;
|
struct split_base *split_base;
|
||||||
|
|
||||||
if (!split_disk) {
|
assert(split_disk);
|
||||||
return;
|
assert(split_disk->base);
|
||||||
}
|
|
||||||
|
|
||||||
split_base = 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->disk.name);
|
||||||
free(split_disk);
|
free(split_disk);
|
||||||
|
|
||||||
if (split_base) {
|
if (__sync_sub_and_fetch(&split_base->ref, 1) == 0) {
|
||||||
vbdev_split_base_put_ref(split_base);
|
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",
|
" offset_blocks: %" PRIu64 "\n",
|
||||||
d->disk.name, spdk_bdev_get_name(base_bdev), d->offset_blocks);
|
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,
|
spdk_io_device_register(&d->base, split_channel_create_cb, split_channel_destroy_cb,
|
||||||
sizeof(struct split_channel));
|
sizeof(struct split_channel));
|
||||||
|
Loading…
Reference in New Issue
Block a user