blob: Destroy snapshot's back_bs_dev during initialization

When snapshot is created, the new blob is loaded and
examined for BLOB_SNAPSHOT xattr in blob_load_backing_dev
function. At this step there is no such xattr, so zeroes
back_bs_dev is created. Later snapshot inherits back_bs_dev
from original blob, so previously created back_bs_dev can
be lost.

Signed-off-by: Alexey Marchuk <alexeymar@mellanox.com>
Change-Id: I90cc9b02f56598d8c5c7fe00409f571fba0aa91a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11384
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>
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
This commit is contained in:
Alexey Marchuk 2022-02-02 14:30:52 +03:00 committed by Tomasz Zawadzki
parent ba8f1a9e5d
commit 8b25bfce7a

View File

@ -6001,6 +6001,9 @@ bs_snapshot_freeze_cpl(void *cb_arg, int rc)
ctx->frozen = true;
if (newblob->back_bs_dev) {
newblob->back_bs_dev->destroy(newblob->back_bs_dev);
}
/* set new back_bs_dev for snapshot */
newblob->back_bs_dev = origblob->back_bs_dev;
/* Set invalid flags from origblob */