From: Jianpeng Ma Date: Fri, 24 Jul 2015 02:12:51 +0000 (+0800) Subject: osd: make read(off=0,len=0) ec-object work. X-Git-Tag: v9.1.0~150^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=19a210a0e75b5bfdd9d8f0d4d21d9403b22dac95;p=ceph.git osd: make read(off=0,len=0) ec-object work. When len=0, it mean read the whole object. It can work when reading no-ec object off=0 & len=0. But for ec-object, it can't work. Signed-off-by: Jianpeng Ma --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index eb93b30bd0af..46392773f3b2 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -3845,6 +3845,9 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector& ops) (op.extent.offset + op.extent.length > op.extent.truncate_size) ) size = op.extent.truncate_size; + if (op.extent.length == 0) //length is zero mean read the whole object + op.extent.length = size; + if (op.extent.offset >= size) { op.extent.length = 0; trimmed_read = true;