summaryrefslogtreecommitdiff
path: root/src/osd/ReplicatedPG.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/ReplicatedPG.h')
-rw-r--r--src/osd/ReplicatedPG.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h
index 00611104555..d5ef9b26ca3 100644
--- a/src/osd/ReplicatedPG.h
+++ b/src/osd/ReplicatedPG.h
@@ -182,7 +182,6 @@ public:
if (r >= 0) {
ctx->pg->execute_ctx(ctx);
}
- ctx->copy_op.reset();
ctx->copy_cb = NULL;
if (r < 0) {
if (r == -ECANCELED) { // toss it out; client resends
@@ -195,9 +194,10 @@ public:
public:
OpContext *ctx;
hobject_t temp_obj;
+ ObjectStore::Transaction final_tx;
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) { final_tx.swap(t); }
~CopyFromCallback() {}
};
friend class CopyFromCallback;
@@ -375,7 +375,7 @@ public:
int num_read; ///< count read ops
int num_write; ///< count update ops
- CopyOpRef copy_op;
+ CopyCallback *copy_cb;
hobject_t new_temp_oid, discard_temp_oid; ///< temp objects we should start/stop tracking
@@ -392,7 +392,8 @@ public:
current_osd_subop_num(0),
data_off(0), reply(NULL), pg(_pg),
num_read(0),
- num_write(0) {
+ num_write(0),
+ copy_cb(NULL) {
if (_ssc) {
new_snapset = _ssc->snapset;
snapset = &_ssc->snapset;
@@ -801,7 +802,7 @@ protected:
// -- copyfrom --
map<hobject_t, CopyOpRef> copy_ops;
- int start_copy(OpContext *ctx, CopyCallback *cb, ObjectContextRef obc, hobject_t src,
+ int start_copy(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);