blob/bdev: Add function pointer get_base_bdev to struct spdk_bs_dev
spdk_bdev_create_bs_dev_ext() gets not bdev pointer but bdev name as an argument, and hence vbdev_lvs_create() will get bdev name accordingly. However after completing spdk_bdev_create_bs_dev_ext(), vbdev_lvs_create() has to get bdev pointer from the created bs_dev. Hence add a function pointer get_base_bdev to struct spdk_bs_dev and set it to bdev_blob_get_base_bdev() at initialization. Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Change-Id: Idef0663ace85db0269442212014286669c150069 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4706 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
This commit is contained in:
parent
6051368da9
commit
3ea2bffb9e
@ -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 */
|
||||
};
|
||||
|
@ -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 *
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user