vbdev_lvol: add function to retrive spdk_lvol from bdev
Previously there was no way to get and verify that ctxt in bdev was actually an lvol. This will be used in rpc calls for vbdev_lvol. Change-Id: I01c50487b740f5bb858dc50e609f023c8b4101ad Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-on: https://review.gerrithub.io/398178 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
daf33a0921
commit
bf7ae80f09
@ -937,6 +937,22 @@ vbdev_lvs_examine(struct spdk_bdev *bdev)
|
||||
|
||||
spdk_lvs_load(bs_dev, _vbdev_lvs_examine_cb, req);
|
||||
}
|
||||
|
||||
struct spdk_lvol *
|
||||
vbdev_lvol_get_from_bdev(struct spdk_bdev *bdev)
|
||||
{
|
||||
if (!bdev || bdev->module != SPDK_GET_BDEV_MODULE(lvol)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (bdev->ctxt == NULL) {
|
||||
SPDK_ERRLOG("No lvol ctx assigned to bdev %s\n", bdev->name);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return (struct spdk_lvol *)bdev->ctxt;
|
||||
}
|
||||
|
||||
SPDK_BDEV_MODULE_REGISTER(lvol, vbdev_lvs_init, NULL, NULL, vbdev_lvs_get_ctx_size,
|
||||
vbdev_lvs_examine)
|
||||
SPDK_LOG_REGISTER_COMPONENT("vbdev_lvol", SPDK_LOG_VBDEV_LVOL);
|
||||
|
@ -78,4 +78,6 @@ struct spdk_lvol_store *vbdev_get_lvol_store_by_name(const char *name);
|
||||
*/
|
||||
struct lvol_store_bdev *vbdev_get_lvs_bdev_by_lvs(struct spdk_lvol_store *lvs);
|
||||
|
||||
struct spdk_lvol *vbdev_lvol_get_from_bdev(struct spdk_bdev *bdev);
|
||||
|
||||
#endif /* SPDK_VBDEV_LVOL_H */
|
||||
|
Loading…
Reference in New Issue
Block a user