diff --git a/include/spdk/blob.h b/include/spdk/blob.h index fbc2728ee..7bcac9ba5 100644 --- a/include/spdk/blob.h +++ b/include/spdk/blob.h @@ -191,6 +191,8 @@ struct spdk_bs_dev { uint64_t lba, uint32_t lba_count, struct spdk_bs_dev_cb_args *cb_args); + struct spdk_bdev *(*get_base_bdev)(struct spdk_bs_dev *dev); + uint64_t blockcnt; uint32_t blocklen; /* In bytes */ }; diff --git a/module/blob/bdev/blob_bdev.c b/module/blob/bdev/blob_bdev.c index 592b68782..ffea54a7f 100644 --- a/module/blob/bdev/blob_bdev.c +++ b/module/blob/bdev/blob_bdev.c @@ -319,6 +319,12 @@ bdev_blob_destroy(struct spdk_bs_dev *bs_dev) free(bs_dev); } +static struct spdk_bdev * +bdev_blob_get_base_bdev(struct spdk_bs_dev *bs_dev) +{ + return __get_bdev(bs_dev); +} + static void blob_bdev_init(struct blob_bdev *b, struct spdk_bdev_desc *desc) { @@ -340,6 +346,7 @@ blob_bdev_init(struct blob_bdev *b, struct spdk_bdev_desc *desc) b->bs_dev.writev = bdev_blob_writev; b->bs_dev.write_zeroes = bdev_blob_write_zeroes; b->bs_dev.unmap = bdev_blob_unmap; + b->bs_dev.get_base_bdev = bdev_blob_get_base_bdev; } struct spdk_bs_dev * diff --git a/test/make/check_so_deps.sh b/test/make/check_so_deps.sh index 549e359ad..773972660 100755 --- a/test/make/check_so_deps.sh +++ b/test/make/check_so_deps.sh @@ -44,6 +44,8 @@ function confirm_abi_deps() { name = spdk_nvme_log_page [suppress_type] name = spdk_nvme_ctrlr_opts +[suppress_type] + name = spdk_bs_dev EOF for object in "$libdir"/libspdk_*.so; do