Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 70cf49cf authored by Alex Elder's avatar Alex Elder
Browse files

rbd: ignore zero-overlap parent

An rbd clone image that has an overlap with its parent of 0 is
effectively not a layered image at all.  Detect this case and treat
such an image as non-layered.  Issue a warning to be sure the user
knows what's going on.

This resolves:
    http://tracker.ceph.com/issues/5028



Signed-off-by: default avatarAlex Elder <elder@inktank.com>
Reviewed-by: default avatarJosh Durgin <josh.durgin@inktank.com>
parent b91f09f1
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -3665,9 +3665,13 @@ static int rbd_dev_v2_parent_info(struct rbd_device *rbd_dev)
	ceph_decode_64_safe(&p, end, parent_spec->snap_id, out_err);
	ceph_decode_64_safe(&p, end, overlap, out_err);

	rbd_dev->parent_overlap = overlap;
	if (overlap) {
		rbd_dev->parent_spec = parent_spec;
		parent_spec = NULL;	/* rbd_dev now owns this */
		rbd_dev->parent_overlap = overlap;
	} else {
		rbd_warn(rbd_dev, "ignoring parent of clone with overlap 0\n");
	}
out:
	ret = 0;
out_err: