From: Josh Durgin Date: Thu, 30 Jan 2014 14:55:29 +0000 (-0800) Subject: Objecter: keep ObjectOperation rval pointers for writes X-Git-Tag: v0.78~154^2~31 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=abca34aa593e6a39f49c9c2883cb492280b1e250;p=ceph.git 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 --- diff --git a/PendingReleaseNotes b/PendingReleaseNotes index ca4716a1094..4d4ece4faeb 100644 --- a/PendingReleaseNotes +++ b/PendingReleaseNotes @@ -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. diff --git a/src/osdc/Objecter.h b/src/osdc/Objecter.h index cc75434ffad..24eeeb08641 100644 --- a/src/osdc/Objecter.h +++ b/src/osdc/Objecter.h @@ -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,