]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: add OSDOp::outdata
authorSage Weil <sage.weil@dreamhost.com>
Mon, 9 Jan 2012 01:21:36 +0000 (17:21 -0800)
committerSage Weil <sage.weil@dreamhost.com>
Mon, 9 Jan 2012 01:21:36 +0000 (17:21 -0800)
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
src/osd/osd_types.cc
src/osd/osd_types.h

index e12cebc221be0c98cf7ce2c347abf7de0367967d..af9818e7e00600e2cd23841951d7e8b566e04591 100644 (file)
@@ -881,3 +881,23 @@ void merge_osd_op_vector_in_data(vector<OSDOp>& ops, bufferlist& out)
     }
   }
 }
+
+void split_osd_op_vector_out_data(vector<OSDOp>& ops, bufferlist& in)
+{
+  bufferlist::iterator datap = in.begin();
+  for (unsigned i = 0; i < ops.size(); i++) {
+    if (ops[i].op.payload_len) {
+      datap.copy(ops[i].op.payload_len, ops[i].outdata);
+    }
+  }
+}
+
+void merge_osd_op_vector_out_data(vector<OSDOp>& ops, bufferlist& out)
+{
+  for (unsigned i = 0; i < ops.size(); i++) {
+    if (ops[i].outdata.length()) {
+      ops[i].op.payload_len = ops[i].outdata.length();
+      out.append(ops[i].outdata);
+    }
+  }
+}
index 726f48dd576eee8f30a060e9374466dcc57058a9..acc66e27e65218af005a4cfdb19c6e8dc04b33e2 100644 (file)
@@ -1302,7 +1302,7 @@ WRITE_CLASS_ENCODER(ScrubMap)
 
 struct OSDOp {
   ceph_osd_op op;
-  bufferlist indata;
+  bufferlist indata, outdata;
   sobject_t soid;
 
   OSDOp() {
@@ -1314,5 +1314,7 @@ ostream& operator<<(ostream& out, const OSDOp& op);
 
 void split_osd_op_vector_in_data(vector<OSDOp>& ops, bufferlist& in);
 void merge_osd_op_vector_in_data(vector<OSDOp>& ops, bufferlist& out);
+void split_osd_op_vector_out_data(vector<OSDOp>& ops, bufferlist& in);
+void merge_osd_op_vector_out_data(vector<OSDOp>& ops, bufferlist& out);
 
 #endif