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-26 11:24:26 -0700 |
commit | 3e7347222c8082cbed6770ea46002c9036e61d18 (patch) | |
tree | 24a36e7060607b1d161fc572852ffcf91e742e24 | |
parent | 8daaeba3f598a6fbe2bfb5f42fe011ee78d2fd9f (diff) | |
download | ceph-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.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 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); |