]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #5745 from ceph/wip-12904
authorKefu Chai <tchaikov@gmail.com>
Tue, 8 Sep 2015 09:27:22 +0000 (17:27 +0800)
committerKefu Chai <tchaikov@gmail.com>
Tue, 8 Sep 2015 09:27:22 +0000 (17:27 +0800)
osd: sparse reads returning invalid extent map

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Kefu Chai <kchai@redhat.com>
1  2 
src/osd/ReplicatedPG.cc

index 428a23eccd202934636763f547cbc7164e529c10,d85f2603dc46b87a208676a6fa066e08cf635c63..f23cb13c226ec9cef47f54ff6d22f825fe403d26
@@@ -4025,13 -3960,14 +4025,13 @@@ int ReplicatedPG::do_osd_ops(OpContext 
  
          op.extent.length = total_read;
  
-         osd_op.outdata.claim_append(bl);
+         ::encode(m, osd_op.outdata); // re-encode since it might be modified
          ::encode_destructively(data_bl, osd_op.outdata);
  
 -      ctx->delta_stats.num_rd_kb += SHIFT_ROUND_UP(op.extent.length, 10);
 -      ctx->delta_stats.num_rd++;
 -
        dout(10) << " sparse_read got " << total_read << " bytes from object " << soid << dendl;
        }
 +      ctx->delta_stats.num_rd_kb += SHIFT_ROUND_UP(op.extent.length, 10);
 +      ctx->delta_stats.num_rd++;
        break;
  
      case CEPH_OSD_OP_CALL: