From c23cc237a789ef69f820e87b9108313ffdb1c285 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Sun, 8 Jan 2012 17:21:36 -0800 Subject: [PATCH] osd: add OSDOp::outdata Signed-off-by: Sage Weil --- src/osd/osd_types.cc | 20 ++++++++++++++++++++ src/osd/osd_types.h | 4 +++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/osd/osd_types.cc b/src/osd/osd_types.cc index e12cebc221be..af9818e7e006 100644 --- a/src/osd/osd_types.cc +++ b/src/osd/osd_types.cc @@ -881,3 +881,23 @@ void merge_osd_op_vector_in_data(vector& ops, bufferlist& out) } } } + +void split_osd_op_vector_out_data(vector& 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& 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); + } + } +} diff --git a/src/osd/osd_types.h b/src/osd/osd_types.h index 726f48dd576e..acc66e27e652 100644 --- a/src/osd/osd_types.h +++ b/src/osd/osd_types.h @@ -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& ops, bufferlist& in); void merge_osd_op_vector_in_data(vector& ops, bufferlist& out); +void split_osd_op_vector_out_data(vector& ops, bufferlist& in); +void merge_osd_op_vector_out_data(vector& ops, bufferlist& out); #endif -- 2.47.3