aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/block/rbd.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 5161e80a38ef..b67ecda1e7ef 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -3665,9 +3665,13 @@ static int rbd_dev_v2_parent_info(struct rbd_device *rbd_dev)
3665 ceph_decode_64_safe(&p, end, parent_spec->snap_id, out_err); 3665 ceph_decode_64_safe(&p, end, parent_spec->snap_id, out_err);
3666 ceph_decode_64_safe(&p, end, overlap, out_err); 3666 ceph_decode_64_safe(&p, end, overlap, out_err);
3667 3667
3668 rbd_dev->parent_overlap = overlap; 3668 if (overlap) {
3669 rbd_dev->parent_spec = parent_spec; 3669 rbd_dev->parent_spec = parent_spec;
3670 parent_spec = NULL; /* rbd_dev now owns this */ 3670 parent_spec = NULL; /* rbd_dev now owns this */
3671 rbd_dev->parent_overlap = overlap;
3672 } else {
3673 rbd_warn(rbd_dev, "ignoring parent of clone with overlap 0\n");
3674 }
3671out: 3675out:
3672 ret = 0; 3676 ret = 0;
3673out_err: 3677out_err: