Commit ccca4e37 authored by Yan, Zheng's avatar Yan, Zheng Committed by Sage Weil

libceph: fix truncate size calculation

check the "not truncated yet" case
Signed-off-by: default avatarYan, Zheng <zheng.z.yan@intel.com>
Reviewed-by: default avatarSage Weil <sage@inktank.com>
parent eb845ff1
...@@ -733,12 +733,14 @@ struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc, ...@@ -733,12 +733,14 @@ struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc,
object_size = le32_to_cpu(layout->fl_object_size); object_size = le32_to_cpu(layout->fl_object_size);
object_base = off - objoff; object_base = off - objoff;
if (truncate_size <= object_base) { if (!(truncate_seq == 1 && truncate_size == -1ULL)) {
truncate_size = 0; if (truncate_size <= object_base) {
} else { truncate_size = 0;
truncate_size -= object_base; } else {
if (truncate_size > object_size) truncate_size -= object_base;
truncate_size = object_size; if (truncate_size > object_size)
truncate_size = object_size;
}
} }
osd_req_op_extent_init(req, 0, opcode, objoff, objlen, osd_req_op_extent_init(req, 0, opcode, objoff, objlen,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment