From f888ab41bdace98b1df5afc6edce8bb494ecb18a Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Thu, 6 Mar 2014 08:56:30 -0800 Subject: [PATCH] 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 --- src/osd/ReplicatedPG.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) 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); } -- 2.47.3