aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlex Elder <elder@inktank.com>2013-05-06 18:40:32 -0400
committerAlex Elder <elder@inktank.com>2013-05-08 21:16:10 -0400
commit91c6febb3817be576785ef06aeaaa8ed423e0a2a (patch)
treeda91f0eb4b61bc7e570d7422157927253a71c017
parent2df3fac75851dc4257b90dc72fdd3cf27ba177bc (diff)
rbd: fix an incorrect assertion condition
In rbd_img_obj_parent_read_full_callback() there is an assertion intended to verify the size of the image request for a full parent read was the size of the original request's target object. But assertion was looking at the parent image order rather than the original one, and these values can differ. Fix that. This resolves: http://tracker.ceph.com/issues/4938 Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-by: Josh Durgin <josh.durgin@inktank.com>
-rw-r--r--drivers/block/rbd.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
index 0d874a546949..15ac2a54d4f3 100644
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@ -2186,13 +2186,13 @@ rbd_img_obj_parent_read_full_callback(struct rbd_img_request *img_request)
2186 result = img_request->result; 2186 result = img_request->result;
2187 obj_size = img_request->length; 2187 obj_size = img_request->length;
2188 xferred = img_request->xferred; 2188 xferred = img_request->xferred;
2189 rbd_img_request_put(img_request);
2189 2190
2190 rbd_dev = img_request->rbd_dev; 2191 rbd_assert(orig_request->img_request);
2192 rbd_dev = orig_request->img_request->rbd_dev;
2191 rbd_assert(rbd_dev); 2193 rbd_assert(rbd_dev);
2192 rbd_assert(obj_size == (u64)1 << rbd_dev->header.obj_order); 2194 rbd_assert(obj_size == (u64)1 << rbd_dev->header.obj_order);
2193 2195
2194 rbd_img_request_put(img_request);
2195
2196 if (result) 2196 if (result)
2197 goto out_err; 2197 goto out_err;
2198 2198