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-23 22:54:58 -0700 |
commit | 50c729135215be308409a7dacec5920880617a2c (patch) | |
tree | 6f4e27ebfd8432fd1cb3869dce69a633e673bbf3 | |
parent | 45244fc82cde8ece47f4dbe84c8d2332fd21e996 (diff) | |
download | ceph-50c729135215be308409a7dacec5920880617a2c.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 48dfe33b1c2..9e65ad68d82 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -1568,7 +1568,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); @@ -1585,18 +1585,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); @@ -1616,16 +1618,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 f68ec2c385d..93f0ed44fff 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); |