summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Just <sam.just@inktank.com>2013-09-01 13:44:09 -0700
committerSamuel Just <sam.just@inktank.com>2013-09-19 20:04:17 -0700
commit95b4039d6440d152603f615547b08037b2827c62 (patch)
treef494ab10dc94315f9ef679a0f177f3ca7141af16
parent8d796bfc32b3553782ad03b48d277c4ab13d8c93 (diff)
downloadceph-95b4039d6440d152603f615547b08037b2827c62.tar.gz
ReplicatedPG/Backend: move _do_push,_do_pull_response,do_push
Signed-off-by: Samuel Just <sam.just@inktank.com>
-rw-r--r--src/osd/ReplicatedBackend.h4
-rw-r--r--src/osd/ReplicatedPG.cc24
-rw-r--r--src/osd/ReplicatedPG.h10
3 files changed, 17 insertions, 21 deletions
diff --git a/src/osd/ReplicatedBackend.h b/src/osd/ReplicatedBackend.h
index 60c31c4c2be..c4f501360d8 100644
--- a/src/osd/ReplicatedBackend.h
+++ b/src/osd/ReplicatedBackend.h
@@ -204,8 +204,8 @@ private:
void sub_op_push_reply(OpRequestRef op);
void sub_op_pull(OpRequestRef op);
- void _do_push(OpRequestRef op) {}
- void _do_pull_response(OpRequestRef op) {}
+ void _do_push(OpRequestRef op);
+ void _do_pull_response(OpRequestRef op);
void do_push(OpRequestRef op) {
if (is_primary()) {
_do_pull_response(op);
diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc
index 9a1d80f6a51..726e630b18c 100644
--- a/src/osd/ReplicatedPG.cc
+++ b/src/osd/ReplicatedPG.cc
@@ -1568,7 +1568,7 @@ void ReplicatedPG::do_scan(
}
}
-void ReplicatedPG::_do_push(OpRequestRef op)
+void ReplicatedBackend::_do_push(OpRequestRef op)
{
MOSDPGPush *m = static_cast<MOSDPGPush *>(op->request);
assert(m->get_header().type == MSG_OSD_PG_PUSH);
@@ -1585,18 +1585,20 @@ void ReplicatedPG::_do_push(OpRequestRef op)
MOSDPGPushReply *reply = new MOSDPGPushReply;
reply->set_priority(m->get_priority());
- reply->pgid = info.pgid;
+ reply->pgid = get_info().pgid;
reply->map_epoch = m->map_epoch;
reply->replies.swap(replies);
reply->compute_cost(cct);
- t->register_on_complete(new C_OSD_SendMessageOnConn(
- osd, reply, m->get_connection()));
+ t->register_on_complete(
+ get_parent()->bless_context(
+ new C_OSD_SendMessageOnConn(
+ osd, reply, m->get_connection())));
- osd->store->queue_transaction(osr.get(), t);
+ get_parent()->queue_transaction(t);
}
-void ReplicatedPG::_do_pull_response(OpRequestRef op)
+void ReplicatedBackend::_do_pull_response(OpRequestRef op)
{
MOSDPGPush *m = static_cast<MOSDPGPush *>(op->request);
assert(m->get_header().type == MSG_OSD_PG_PUSH);
@@ -1616,16 +1618,18 @@ void ReplicatedPG::_do_pull_response(OpRequestRef op)
if (replies.size()) {
MOSDPGPull *reply = new MOSDPGPull;
reply->set_priority(m->get_priority());
- reply->pgid = info.pgid;
+ reply->pgid = get_info().pgid;
reply->map_epoch = m->map_epoch;
reply->pulls.swap(replies);
reply->compute_cost(cct);
- t->register_on_complete(new C_OSD_SendMessageOnConn(
- osd, reply, m->get_connection()));
+ t->register_on_complete(
+ get_parent()->bless_context(
+ new C_OSD_SendMessageOnConn(
+ osd, reply, m->get_connection())));
}
- osd->store->queue_transaction(osr.get(), t);
+ get_parent()->queue_transaction(t);
}
void ReplicatedPG::do_pull(OpRequestRef op)
diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h
index f68ec2c385d..93f0ed44fff 100644
--- a/src/osd/ReplicatedPG.h
+++ b/src/osd/ReplicatedPG.h
@@ -905,15 +905,7 @@ public:
OpRequestRef op,
ThreadPool::TPHandle &handle);
void do_backfill(OpRequestRef op);
- void _do_push(OpRequestRef op);
- void _do_pull_response(OpRequestRef op);
- void do_push(OpRequestRef op) {
- if (is_primary()) {
- _do_pull_response(op);
- } else {
- _do_push(op);
- }
- }
+
void do_pull(OpRequestRef op);
void do_push_reply(OpRequestRef op);
RepGather *trim_object(const hobject_t &coid);