Objecter: keep ObjectOperation rval pointers for writes

Just before sending an op, prepare_mutate_op() is called, creating a
new Op. prepare_read_op() already copied over all the out-params
correctly, but for write operations the individual op return value
pointers were not copied, so they would not be filled in. With this
fixed, librados users can get the per-op return codes again.

Partially fixes: #6483
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
This commit is contained in:
Josh Durgin 2014-01-30 06:55:29 -08:00
parent c5d3bdf7fa
commit abca34aa59
2 changed files with 4 additions and 0 deletions

View File

@ -9,3 +9,6 @@ v0.78
inode that has an outdated backtrace attribute will get updated when
the inode itself is modified. This will result in some extra workload
after a legacy CephFS file system is upgraded.
* The per-op return code in librados' ObjectWriteOperation interface
is now filled in.

View File

@ -1605,6 +1605,7 @@ public:
o->priority = op.priority;
o->mtime = mtime;
o->snapc = snapc;
o->out_rval.swap(op.out_rval);
return o;
}
tid_t mutate(const object_t& oid, const object_locator_t& oloc,