From: Samuel Just Date: Sun, 1 Sep 2013 20:44:09 +0000 (-0700) Subject: ReplicatedPG/Backend: move _do_push,_do_pull_response,do_push X-Git-Tag: v0.71~68^2~22 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=3e7347222c8082cbed6770ea46002c9036e61d18;p=ceph.git ReplicatedPG/Backend: move _do_push,_do_pull_response,do_push Signed-off-by: Samuel Just --- diff --git a/src/osd/ReplicatedBackend.h b/src/osd/ReplicatedBackend.h index 60c31c4c2be3..c4f501360d8d 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 fb03ca83b6e2..32a3878242c6 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(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(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 493929949446..8562150fdaa9 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);