diff options
author | Samuel Just <sam.just@inktank.com> | 2013-09-01 13:44:09 -0700 |
---|---|---|
committer | Samuel Just <sam.just@inktank.com> | 2013-09-14 00:45:32 -0700 |
commit | 1c040d59cc92499b496836e80f7da80bd66ab267 (patch) | |
tree | f7902be37f447a0308e3b0393bdbab95844cfe8f | |
parent | 1f9a6dd1d1df2db0d4cf6961b3e54c0ea2ea0171 (diff) | |
download | ceph-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.h | 4 | ||||
-rw-r--r-- | src/osd/ReplicatedPG.cc | 24 | ||||
-rw-r--r-- | src/osd/ReplicatedPG.h | 10 |
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); |