From: Xinze Chi Date: Wed, 11 Feb 2015 10:06:29 +0000 (+0000) Subject: osd: call get_transaction if needed in make_writeable X-Git-Tag: v9.0.0~87^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=016393dcfae2fcd2b1fc8e51c295f71273b0482b;p=ceph.git osd: call get_transaction if needed in make_writeable Signed-off-by: Xinze Chi --- diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index cc3186d9a64ff..2776f19938ac0 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -5470,7 +5470,6 @@ void ReplicatedPG::make_writeable(OpContext *ctx) { const hobject_t& soid = ctx->obs->oi.soid; SnapContext& snapc = ctx->snapc; - PGBackend::PGTransaction *t = pgbackend->get_transaction(); // clone? assert(soid.snap == CEPH_NOSNAP); @@ -5563,7 +5562,13 @@ void ReplicatedPG::make_writeable(OpContext *ctx) snap_oi->snaps = snaps; if (was_dirty) snap_oi->set_flag(object_info_t::FLAG_DIRTY); + + // prepend transaction to op_t + PGBackend::PGTransaction *t = pgbackend->get_transaction(); _make_clone(ctx, t, ctx->clone_obc, soid, coid, snap_oi); + t->append(ctx->op_t); + delete ctx->op_t; + ctx->op_t = t; ctx->delta_stats.num_objects++; if (snap_oi->is_dirty()) @@ -5613,11 +5618,6 @@ void ReplicatedPG::make_writeable(OpContext *ctx) } } - // prepend transaction to op_t - t->append(ctx->op_t); - delete ctx->op_t; - ctx->op_t = t; - // update snapset with latest snap context ctx->new_snapset.seq = snapc.seq; ctx->new_snapset.snaps = snapc.snaps;