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,6 +733,7 @@ struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc, ...@@ -733,6 +733,7 @@ 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_seq == 1 && truncate_size == -1ULL)) {
if (truncate_size <= object_base) { if (truncate_size <= object_base) {
truncate_size = 0; truncate_size = 0;
} else { } else {
...@@ -740,6 +741,7 @@ struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc, ...@@ -740,6 +741,7 @@ struct ceph_osd_request *ceph_osdc_new_request(struct ceph_osd_client *osdc,
if (truncate_size > object_size) if (truncate_size > object_size)
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,
truncate_size, truncate_seq); truncate_size, truncate_seq);
......
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