]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
Merge pull request #3203 from majianpeng/fix1
authorSamuel Just <sam.just@inktank.com>
Mon, 12 Jan 2015 16:39:48 +0000 (08:39 -0800)
committerSamuel Just <sam.just@inktank.com>
Mon, 12 Jan 2015 16:39:48 +0000 (08:39 -0800)
avoid memcopy from librados to caller buffer

Reviewed-by: Sage Weil <sage@redhat.com>
Reviewed-by: Samuel Just <sjust@redhat.com>
1  2 
src/librados/IoCtxImpl.cc
src/librados/librados.cc
src/osdc/Objecter.cc
src/osdc/Objecter.h

Simple merge
Simple merge
index 349409b7d715cdf75d34790bd62ab63876b5c010,516d315e590e98718c0b12a450f8daf783befef0..3e0d2caf9577d16db703f6db474e5a7c0af317fd
@@@ -2974,9 -2952,15 +2974,17 @@@ void Objecter::handle_osd_op_reply(MOSD
      *op->objver = m->get_user_version();
    if (op->reply_epoch)
      *op->reply_epoch = m->get_map_epoch();
 +  if (op->data_offset)
 +    *op->data_offset = m->get_header().data_off;
  
+   // got data?
+   if (op->outbl) {
+     if (op->con)
+       op->con->revoke_rx_buffer(op->tid);
+     m->claim_data(*op->outbl);
+     op->outbl = 0;
+   }
    // per-op result demuxing
    vector<OSDOp> out_ops;
    m->claim_ops(out_ops);
Simple merge