]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
ReplicatedPG: copy: take an ObjectContextRef in start_copy and use that
authorGreg Farnum <greg@inktank.com>
Mon, 30 Sep 2013 23:27:39 +0000 (16:27 -0700)
committerGreg Farnum <greg@inktank.com>
Tue, 1 Oct 2013 23:28:51 +0000 (16:28 -0700)
Signed-off-by: Greg Farnum <greg@inktank.com>
src/osd/ReplicatedPG.cc
src/osd/ReplicatedPG.h

index aba0a1067c00797d33804bb4f7812df6e1f04e08..cfac7dd7db24b9f5bf447b45d94c5fb794edd5fc 100644 (file)
@@ -3764,7 +3764,7 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops)
            result = -EINVAL;
            break;
          }
-         result = start_copy(ctx, src, src_oloc, src_version);
+         result = start_copy(ctx, ctx->obc, src, src_oloc, src_version);
          if (result < 0)
            goto fail;
          result = -EINPROGRESS;
@@ -4379,7 +4379,7 @@ struct C_Copyfrom : public Context {
   }
 };
 
-int ReplicatedPG::start_copy(OpContext *ctx,
+int ReplicatedPG::start_copy(OpContext *ctx, ObjectContextRef obc,
                             hobject_t src, object_locator_t oloc, version_t version)
 {
   const hobject_t& dest = ctx->obs->oi.soid;
@@ -4395,12 +4395,12 @@ int ReplicatedPG::start_copy(OpContext *ctx,
     cancel_copy(cop);
   }
 
-  CopyOpRef cop(new CopyOp(ctx, ctx->obc, src, oloc, version));
+  CopyOpRef cop(new CopyOp(ctx, obc, src, oloc, version));
   copy_ops[dest] = cop;
   ctx->copy_op = cop;
-  ++ctx->obc->copyfrom_readside;
+  ++obc->copyfrom_readside;
 
-  _copy_some(ctx->obc, cop);
+  _copy_some(obc, cop);
 
   return 0;
 }
index c968ad3ea2fcd8881919dbc34f621b3a2a25a5e2..5f0c97b3716766c7484f30f86d23821367c9953f 100644 (file)
@@ -723,7 +723,7 @@ protected:
   // -- copyfrom --
   map<hobject_t, CopyOpRef> copy_ops;
 
-  int start_copy(OpContext *ctx, hobject_t src, object_locator_t oloc, version_t version);
+  int start_copy(OpContext *ctx, ObjectContextRef obc, hobject_t src, object_locator_t oloc, version_t version);
   void process_copy_chunk(hobject_t oid, tid_t tid, int r);
   void _write_copy_chunk(CopyOpRef cop, ObjectStore::Transaction *t);
   void _copy_some(ObjectContextRef obc, CopyOpRef cop);