When decoupling a snapshot from its parent, we need to clear its parent. So we should remove the xattr BLOB_SNAPSHOT. Modifying the xattrs of a blob only works if its metadata are not in read-only mode. By default, a snapshot is in read-only mode so this operation fails. When we later want to delete the snapshot, we will see that it has a parent, so we will try to remove the snapshot from its parent's clones list. This will cause a crash. The fix is to remove the BLOB_SNAPSHOT xattr only after setting the snapshot's metadata in rw mode. Signed-off-by: Alex Michon <amichon@kalrayinc.com> Change-Id: I80efa6dd3dcb38b4c738ce2e97aa2ffc281cefa5 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13723 Community-CI: Mellanox Build Bot Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com> |
||
---|---|---|
.. | ||
blob.c | ||
bs_dev_common.c | ||
bs_scheduler.c | ||
Makefile |