]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: call get_transaction if needed in make_writeable 3688/head
authorXinze Chi <xmdxcxz@gmail.com>
Wed, 11 Feb 2015 10:06:29 +0000 (10:06 +0000)
committerXinze Chi <xmdxcxz@gmail.com>
Wed, 11 Feb 2015 10:06:29 +0000 (10:06 +0000)
Signed-off-by: Xinze Chi <xmdxcxz@gmail.com>
src/osd/ReplicatedPG.cc

index cc3186d9a64ffe85b3236a7637e9d1e8855e9f99..2776f19938ac0e7bd623e52a0c1c90c9b68d2394 100644 (file)
@@ -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;