Commit 3ea2bffb authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

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: default avatarShuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Change-Id: Idef0663ace85db0269442212014286669c150069
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4706


Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Reviewed-by: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: default avatarAleksey Marchuk <alexeymar@mellanox.com>
parent 6051368d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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 */
};
+7 −0
Original line number Diff line number Diff line
@@ -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 *
+2 −0
Original line number Diff line number Diff line
@@ -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