diff options
author | Samuel Just <sam.just@inktank.com> | 2013-08-30 14:25:32 -0700 |
---|---|---|
committer | Samuel Just <sam.just@inktank.com> | 2013-09-14 00:45:31 -0700 |
commit | c741999535f392ac657eb3d9c74b0b48f8ff1644 (patch) | |
tree | b5861770396c6f40e1dd5e63e540427810261aa0 | |
parent | acfda28430b731b50be1da5840f69a1fbb79cee6 (diff) | |
download | ceph-c741999535f392ac657eb3d9c74b0b48f8ff1644.tar.gz |
ReplicatedPG/Backend: shuffle sub_op_push over to ReplicatedBackend
Signed-off-by: Samuel Just <sam.just@inktank.com>
-rw-r--r-- | src/osd/OSD.h | 14 | ||||
-rw-r--r-- | src/osd/ReplicatedBackend.h | 2 | ||||
-rw-r--r-- | src/osd/ReplicatedPG.cc | 7 | ||||
-rw-r--r-- | src/osd/ReplicatedPG.h | 13 |
4 files changed, 19 insertions, 17 deletions
diff --git a/src/osd/OSD.h b/src/osd/OSD.h index f5f50be4af8..8aad81a4521 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -637,6 +637,20 @@ public: OSDService(OSD *osd); ~OSDService(); }; + +struct C_OSD_SendMessageOnConn: public Context { + OSDService *osd; + Message *reply; + ConnectionRef conn; + C_OSD_SendMessageOnConn( + OSDService *osd, + Message *reply, + ConnectionRef conn) : osd(osd), reply(reply), conn(conn) {} + void finish(int) { + osd->send_message_osd_cluster(reply, conn.get()); + } +}; + class OSD : public Dispatcher, public md_config_obs_t { /** OSD **/ diff --git a/src/osd/ReplicatedBackend.h b/src/osd/ReplicatedBackend.h index c40b4f73733..1161becbbd0 100644 --- a/src/osd/ReplicatedBackend.h +++ b/src/osd/ReplicatedBackend.h @@ -192,7 +192,7 @@ private: // Reverse mapping from osd peer to objects beging pulled from that peer map<int, set<hobject_t> > pull_from_peer; - void sub_op_push(OpRequestRef op) {} + void sub_op_push(OpRequestRef op); void sub_op_push_reply(OpRequestRef op) {} void sub_op_pull(OpRequestRef op) {} diff --git a/src/osd/ReplicatedPG.cc b/src/osd/ReplicatedPG.cc index 725a9fe68eb..6c3f4166003 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -79,6 +79,7 @@ PGLSFilter::~PGLSFilter() { } + // ====================== // PGBackend::Listener @@ -6736,7 +6737,7 @@ void ReplicatedPG::trim_pushed_data( /** op_push * NOTE: called from opqueue. */ -void ReplicatedPG::sub_op_push(OpRequestRef op) +void ReplicatedBackend::sub_op_push(OpRequestRef op) { op->mark_started(); MOSDSubOp *m = static_cast<MOSDSubOp *>(op->request); @@ -6772,9 +6773,9 @@ void ReplicatedPG::sub_op_push(OpRequestRef op) assert(entity_name_t::TYPE_OSD == m->get_connection()->peer_type); handle_push(m->get_source().num(), pop, &resp, t); t->register_on_complete(new C_OSD_SendMessageOnConn( - osd, reply, m->get_connection())); + osd, reply, m->get_connection())); } - osd->store->queue_transaction(osr.get(), t); + get_parent()->queue_transaction(t); return; } diff --git a/src/osd/ReplicatedPG.h b/src/osd/ReplicatedPG.h index 3f64fdab3f0..f9be2f4b71c 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -808,18 +808,6 @@ protected: pg->_committed_pushed_object(epoch, last_complete); } }; - struct C_OSD_SendMessageOnConn: public Context { - OSDService *osd; - Message *reply; - ConnectionRef conn; - C_OSD_SendMessageOnConn( - OSDService *osd, - Message *reply, - ConnectionRef conn) : osd(osd), reply(reply), conn(conn) {} - void finish(int) { - osd->send_message_osd_cluster(reply, conn.get()); - } - }; struct C_OSD_CompletedPull : public Context { ReplicatedPGRef pg; hobject_t hoid; @@ -857,7 +845,6 @@ protected: void _applied_recovered_object_replica(); void _committed_pushed_object(epoch_t epoch, eversion_t lc); void recover_got(hobject_t oid, eversion_t v); - void sub_op_push(OpRequestRef op); void _failed_push(int from, const hobject_t &soid); void sub_op_push_reply(OpRequestRef op); bool handle_push_reply(int peer, PushReplyOp &op, PushOp *reply); |