]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: make read(off=0,len=0) ec-object work.
authorJianpeng Ma <jianpeng.ma@intel.com>
Fri, 24 Jul 2015 02:12:51 +0000 (10:12 +0800)
committerJianpeng Ma <jianpeng.ma@intel.com>
Wed, 9 Sep 2015 08:26:14 +0000 (16:26 +0800)
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 <jianpeng.ma@intel.com>
src/osd/ReplicatedPG.cc

index eb93b30bd0af8722e9d55af6288a0523615b2240..46392773f3b2a40ee83f24587c3c2b046173ee14 100644 (file)
@@ -3845,6 +3845,9 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& 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;