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-26 11:24:26 -0700
commit3e7347222c8082cbed6770ea46002c9036e61d18 (patch)
tree24a36e7060607b1d161fc572852ffcf91e742e24
parent8daaeba3f598a6fbe2bfb5f42fe011ee78d2fd9f (diff)
downloadceph-3e7347222c8082cbed6770ea46002c9036e61d18.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 fb03ca83b6e..32a3878242c 100644
--- a/src/osd/ReplicatedPG.cc
+++ b/src/osd/ReplicatedPG.cc
@@ -1569,7 +1569,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);
@@ -1586,18 +1586,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);
@@ -1617,16 +1619,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 49392994944..8562150fdaa 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);