]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ObjectCacher: fix the bytes_written in writex
authorZhiqiang Wang <zhiqiang@xsky.com>
Wed, 24 Feb 2016 13:49:56 +0000 (21:49 +0800)
committerZhiqiang Wang <zhiqiang@xsky.com>
Wed, 24 Feb 2016 13:49:56 +0000 (21:49 +0800)
The BufferHead returned after map_write may include other dirty data to
the left and/or right. The actual length of data been written is in the
ObjectExtent.

Signed-off-by: Zhiqiang Wang <zhiqiang@xsky.com>
src/osdc/ObjectCacher.cc

index ede6aa3bb4d7d3d03a5150cb012cc4015d2f2b9e..54dac972e1d2f427591f366306fab61b22adaa64 100644 (file)
@@ -1571,10 +1571,10 @@ int ObjectCacher::writex(OSDWrite *wr, ObjectSet *oset, Context *onfreespace)
     BufferHead *bh = o->map_write(*ex_it, wr->journal_tid);
     bool missing = bh->is_missing();
     bh->snapc = wr->snapc;
-
-    bytes_written += bh->length();
+    
+    bytes_written += ex_it->length;
     if (bh->is_tx()) {
-      bytes_written_in_flush += bh->length();
+      bytes_written_in_flush += ex_it->length;
     }
 
     // adjust buffer pointers (ie "copy" data into my cache)