]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Striper: Add total_intended_len in StripedReadResult
authorJianpeng Ma <jianpeng.ma@intel.com>
Mon, 19 Jan 2015 02:15:59 +0000 (10:15 +0800)
committerHaomai Wang <haomai@xsky.com>
Sat, 20 Feb 2016 06:15:28 +0000 (14:15 +0800)
Using this field record the total len which we wanted.

Signed-off-by: Jianpeng Ma <jianpeng.ma@intel.com>
src/osdc/Striper.cc
src/osdc/Striper.h

index 9cd46978307785662b0b6463bd789783c60a01c6..43280c82a07316a00024a8ca132a361288fdcc6a 100644 (file)
@@ -270,6 +270,7 @@ void Striper::StripedReadResult::add_partial_result(
     size_t actual = MIN(bl.length(), p->second);
     bl.splice(0, actual, &r.first);
     r.second = p->second;
+    total_intended_len += r.second;
   }
 }
 
@@ -297,6 +298,7 @@ void Striper::StripedReadResult::add_partial_sparse_result(
        ldout(cct, 20) << "  s at end" << dendl;
        pair<bufferlist, uint64_t>& r = partial[tofs];
        r.second = tlen;
+       total_intended_len += r.second;
        break;
       }
 
@@ -315,6 +317,7 @@ void Striper::StripedReadResult::add_partial_sparse_result(
        size_t gap = MIN(s->first - bl_off, tlen);
        ldout(cct, 20) << "  s gap " << gap << ", skipping" << dendl;
        r.second = gap;
+       total_intended_len += r.second;
        bl_off += gap;
        tofs += gap;
        tlen -= gap;
@@ -332,6 +335,7 @@ void Striper::StripedReadResult::add_partial_sparse_result(
        pair<bufferlist, uint64_t>& r = partial[tofs];
        bl.splice(0, actual, &r.first);
        r.second = actual;
+       total_intended_len += r.second;
        bl_off += actual;
        tofs += actual;
        tlen -= actual;
index 228045aac73ae52dbd03ea3bda3e87fa16c3a132..bbd7eeac25e0a91626e0e6580120d6382f1c2575 100644 (file)
@@ -77,6 +77,7 @@ class CephContext;
     class StripedReadResult {
       // offset -> (data, intended length)
       map<uint64_t, pair<bufferlist, uint64_t> > partial;
+      uint64_t total_intended_len = 0; //sum of partial.second.second
 
     public:
       void add_partial_result(