As an lvstore is being loaded, blobs are itereated with spdk_bs_iter_next(), which opens a blob, calls lvol_next_lvol(), then closes the blob. Since the blob struct that is passed to load_next_lvol() is only transiently opened, it should not be stored with the lvol. A short while later, the lvstore opens each lvol by calling spdk_lvol_open() from _vbdev_lvs_examine_cb(). At that time, the lvstore holds the open reference and only then is it safe to keep a reference to the blob. Change-Id: I309227b23b59058a58167a9dac35af5fabc29d98 Signed-off-by: Mike Gerdts <mgerdts@nvidia.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14965 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com> |
||
---|---|---|
.. | ||
lvol.c | ||
Makefile | ||
spdk_lvol.map |