On 04/22/2013 01:34 PM, Josh Durgin wrote: >> + * We need to zero anything beyond the parent overlap >> + * boundary. Since rbd_img_obj_request_read_callback() >> + * will zero anything beyond the end of a short read, an >> + * easy way to do this is to pretend the data from the >> + * parent came up short--ending at the overlap boundary. >> + */ Sorry, I missed this one. >> + rbd_assert(obj_request->img_offset < U64_MAX - obj_request->length); >> + obj_end = obj_request->img_offset + obj_request->length; >> + rbd_dev = obj_request->img_request->rbd_dev; >> + if (obj_end > rbd_dev->parent_overlap) { > > Shouldn't this be >=, since the overlap is a size? Does the overlap define the maximum byte offste included in the overlap, or does it define the first offset not included? If it's the former, then I agree with you (and it's not what I thought). -Alex >> + u64 xferred = 0; >> + >> + if (obj_request->img_offset < rbd_dev->parent_overlap) >> + xferred = rbd_dev->parent_overlap - >> + obj_request->img_offset; >> + >> + obj_request->xferred = min(img_request->xferred, xferred); >> + } else { -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html