]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedPG: consistently use ctx->at_version.version for stashed object 1392/head
authorSamuel Just <sam.just@inktank.com>
Thu, 6 Mar 2014 16:56:30 +0000 (08:56 -0800)
committerSamuel Just <sam.just@inktank.com>
Thu, 6 Mar 2014 20:11:31 +0000 (12:11 -0800)
Otherwise, two ops might end up using the same version number.

Fixes: #7632
Signed-off-by: Samuel Just <sam.just@inktank.com>
src/osd/ReplicatedPG.cc

index 6c9d5ecf484151f1ec54861b991ef89abca6556b..14795d2f0f7b9b84854d99cfeb1a323792bb4bfb 100644 (file)
@@ -3644,8 +3644,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
 
        if (pool.info.require_rollback()) {
          if (obs.exists) {
-           if (ctx->mod_desc.rmobject(oi.version.version)) {
-             t->stash(soid, oi.version.version);
+           if (ctx->mod_desc.rmobject(ctx->at_version.version)) {
+             t->stash(soid, ctx->at_version.version);
            } else {
              t->remove(soid);
            }
@@ -4478,8 +4478,8 @@ inline int ReplicatedPG::_delete_head(OpContext *ctx, bool no_whiteout)
     return -ENOENT;
 
   if (pool.info.require_rollback()) {
-    if (ctx->mod_desc.rmobject(oi.version.version)) {
-      t->stash(soid, oi.version.version);
+    if (ctx->mod_desc.rmobject(ctx->at_version.version)) {
+      t->stash(soid, ctx->at_version.version);
     } else {
       t->remove(soid);
     }
@@ -4587,8 +4587,8 @@ int ReplicatedPG::_rollback_to(OpContext *ctx, ceph_osd_op& op)
 
       if (pool.info.require_rollback()) {
        if (obs.exists) {
-         if (ctx->mod_desc.rmobject(oi.version.version)) {
-           t->stash(soid, oi.version.version);
+         if (ctx->mod_desc.rmobject(ctx->at_version.version)) {
+           t->stash(soid, ctx->at_version.version);
          } else {
            t->remove(soid);
          }