diff options
author | Sage Weil <sage@newdream.net> | 2011-06-06 12:27:28 -0700 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2011-06-06 12:27:28 -0700 |
commit | 5cc146ea7cd033bfa5972923335425f9667d7269 (patch) | |
tree | 0af2408f32a75d6bc31128b17e0fec9da471b054 /src/messages | |
parent | 0baa108ba968e021f362057f706f94e1cf475041 (diff) | |
download | ceph-5cc146ea7cd033bfa5972923335425f9667d7269.tar.gz |
osd: allow src_oids to be snapped
Signed-off-by: Sage Weil <sage@newdream.net>
Diffstat (limited to 'src/messages')
-rw-r--r-- | src/messages/MOSDOp.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/messages/MOSDOp.h b/src/messages/MOSDOp.h index 37a50ed6a0d..193b5b02614 100644 --- a/src/messages/MOSDOp.h +++ b/src/messages/MOSDOp.h @@ -174,8 +174,10 @@ public: for (unsigned i = 0; i < ops.size(); i++) { if (ceph_osd_op_type_multi(ops[i].op.op)) { - ops[i].op.payload_len = ops[i].oid.name.length(); - data.append(ops[i].oid.name); + bufferlist bl; + ::encode(ops[i].soid, bl); + ops[i].op.payload_len = bl.length(); + data.append(bl); } else { ops[i].op.payload_len = ops[i].data.length(); data.append(ops[i].data); @@ -329,8 +331,10 @@ struct ceph_osd_request_head { bufferlist t; ops[i].data.substr_of(t, off, ops[i].op.payload_len); off += ops[i].op.payload_len; - if (t.length()) - oid.name = t.c_str(); + if (t.length()) { + bufferlist::iterator p = t.begin(); + ::decode(ops[i].soid, p); + } } else { ops[i].data.substr_of(data, off, ops[i].op.payload_len); off += ops[i].op.payload_len; |