Commit bf7ae80f authored by Tomasz Zawadzki's avatar Tomasz Zawadzki Committed by Jim Harris
Browse files

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: default avatarTomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.gerrithub.io/398178


Tested-by: default avatarSPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: default avatarDaniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
parent daf33a09
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -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);
+2 −0
Original line number Diff line number Diff line
@@ -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 */