diff options
author | Greg Farnum <greg@inktank.com> | 2013-10-01 13:13:44 -0700 |
---|---|---|
committer | Greg Farnum <greg@inktank.com> | 2013-10-01 16:51:33 -0700 |
commit | 613841a6703bbf198b971dd3fdeda15446cabe82 (patch) | |
tree | fcf04fbaa589ccbc698b0a3adae939966f332e4f | |
parent | 0b472766f11e3bf30012d2958bf0564aa9354e17 (diff) | |
download | ceph-613841a6703bbf198b971dd3fdeda15446cabe82.tar.gz |
ReplicatedPG: copy: add CopyCallback pointer to CopyOp, and set it up
We'll start using it in the next commit; eventually we can use the interfaces
we're putting their to replace our link to the OpContext.
Signed-off-by: Greg Farnum <greg@inktank.com>
-rw-r--r-- | src/osd/ReplicatedPG.cc | 7 | ||||
-rw-r--r-- | src/osd/ReplicatedPG.h | 9 |
2 files changed, 9 insertions, 7 deletions
diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index efc1cf8f603..f83f2312bf3 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -3765,7 +3765,8 @@ int ReplicatedPG::do_osd_ops(OpContext *ctx, vector<OSDOp>& ops) break; } hobject_t temp_target = generate_temp_object(); - result = start_copy(ctx, ctx->obc, src, src_oloc, src_version, + CopyFromCallback *cb = new CopyFromCallback(ctx, temp_target); + result = start_copy(ctx, cb, ctx->obc, src, src_oloc, src_version, temp_target); if (result < 0) goto fail; @@ -4381,7 +4382,7 @@ struct C_Copyfrom : public Context { } }; -int ReplicatedPG::start_copy(OpContext *ctx, ObjectContextRef obc, +int ReplicatedPG::start_copy(OpContext *ctx, CopyCallback *cb, ObjectContextRef obc, hobject_t src, object_locator_t oloc, version_t version, const hobject_t& temp_dest_oid) { @@ -4398,7 +4399,7 @@ int ReplicatedPG::start_copy(OpContext *ctx, ObjectContextRef obc, cancel_copy(cop); } - CopyOpRef cop(new CopyOp(ctx, obc, src, oloc, version, temp_dest_oid)); + CopyOpRef cop(new CopyOp(ctx, cb, obc, src, oloc, version, temp_dest_oid)); copy_ops[dest] = cop; ctx->copy_op = cop; ++obc->copyfrom_readside; diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h index a93f53be414..6ca252214c0 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -97,6 +97,7 @@ public: struct CopyOp { OpContext *ctx; + CopyCallback *cb; ObjectContextRef obc; hobject_t src; object_locator_t oloc; @@ -116,9 +117,9 @@ public: hobject_t temp_oid; object_copy_cursor_t temp_cursor; - CopyOp(OpContext *c, ObjectContextRef _obc, hobject_t s, object_locator_t l, + CopyOp(OpContext *c, CopyCallback *cb_, ObjectContextRef _obc, hobject_t s, object_locator_t l, version_t v, const hobject_t& dest) - : ctx(c), obc(_obc), src(s), oloc(l), version(v), + : ctx(c), cb(cb_), obc(_obc), src(s), oloc(l), version(v), objecter_tid(0), size(0), rval(-1), @@ -179,7 +180,7 @@ public: hobject_t temp_obj; CopyFromCallback(OpContext *ctx_, const hobject_t& temp_obj_) : ctx(ctx_), temp_obj(temp_obj_) {} - void copy_complete_ops(ObjectStore::Transaction& t); + void copy_complete_ops(ObjectStore::Transaction& t) {} ~CopyFromCallback() {} }; @@ -782,7 +783,7 @@ protected: // -- copyfrom -- map<hobject_t, CopyOpRef> copy_ops; - int start_copy(OpContext *ctx, ObjectContextRef obc, hobject_t src, + int start_copy(OpContext *ctx, CopyCallback *cb, ObjectContextRef obc, hobject_t src, object_locator_t oloc, version_t version, const hobject_t& temp_dest_oid); void process_copy_chunk(hobject_t oid, tid_t tid, int r); |