From: Samuel Just Date: Thu, 6 Mar 2014 16:56:30 +0000 (-0800) Subject: ReplicatedPG: consistently use ctx->at_version.version for stashed object X-Git-Tag: v0.78~73^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F1392%2Fhead;p=ceph.git ReplicatedPG: consistently use ctx->at_version.version for stashed object Otherwise, two ops might end up using the same version number. Fixes: #7632 Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 6c9d5ecf4841..14795d2f0f7b 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -3644,8 +3644,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector& 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); }