From: Samuel Just Date: Wed, 15 Jan 2014 17:21:30 +0000 (-0800) Subject: ReplicatedPG: fill in mod_desc in finish_copyfrom X-Git-Tag: v0.78~286^2~12 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=7c9425c3a897c70efe449b71f1dcaed0331249fa;p=ceph.git ReplicatedPG: fill in mod_desc in finish_copyfrom Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index a4c4d2d4d11c..2e2a36e0e2ad 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -5428,8 +5428,20 @@ void ReplicatedPG::finish_copyfrom(OpContext *ctx) ObjectState& obs = ctx->new_obs; CopyFromCallback *cb = static_cast(ctx->copy_cb); - if (obs.exists) { - ctx->op_t->remove(obs.oi.soid); + if (pool.info.ec_pool()) { + if (obs.exists) { + if (ctx->mod_desc.rmobject(ctx->at_version.version)) { + ctx->op_t->stash(obs.oi.soid, ctx->at_version.version); + } else { + ctx->op_t->remove(obs.oi.soid); + } + } + ctx->mod_desc.create(); + } else { + if (obs.exists) { + ctx->op_t->remove(obs.oi.soid); + } + ctx->mod_desc.mark_unrollbackable(); } if (!obs.exists) {