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-14 00:45:32 -0700
commit1c040d59cc92499b496836e80f7da80bd66ab267 (patch)
treef7902be37f447a0308e3b0393bdbab95844cfe8f
parent1f9a6dd1d1df2db0d4cf6961b3e54c0ea2ea0171 (diff)
downloadceph-1c040d59cc92499b496836e80f7da80bd66ab267.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 39dc01507c9..ec73f0469d2 100644
--- a/src/osd/ReplicatedBackend.h
+++ b/src/osd/ReplicatedBackend.h
@@ -196,8 +196,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 15f7bdaf245..181b5cc9cb6 100644
--- a/src/osd/ReplicatedPG.cc
+++ b/src/osd/ReplicatedPG.cc
@@ -1559,7 +1559,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);
@@ -1576,18 +1576,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);
@@ -1607,16 +1609,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 4e8b2981f48..7e513e6bbdd 100644
--- a/src/osd/ReplicatedPG.h
+++ b/src/osd/ReplicatedPG.h
@@ -898,15 +898,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);