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-19 12:50:44 -0700 |
commit | 7bd9499a01e202399d1f61840da471046e9a940b (patch) | |
tree | bd8648c60c6af3aca7574b4cbdc5bbff66f2b760 | |
parent | 113248ca4faf910ce3eb57d05b413d772c5fddbb (diff) | |
download | ceph-7bd9499a01e202399d1f61840da471046e9a940b.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 c2f45196870..17256d61702 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -635,6 +635,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 4c20f248650..ba79d06de5f 100644 --- a/src/osd/ReplicatedBackend.h +++ b/src/osd/ReplicatedBackend.h @@ -200,7 +200,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 33b7bbef72e..74a7ae419f9 100644 --- a/src/osd/ReplicatedPG.cc +++ b/src/osd/ReplicatedPG.cc @@ -80,6 +80,7 @@ PGLSFilter::~PGLSFilter() { } + // ====================== // PGBackend::Listener @@ -6857,7 +6858,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); @@ -6893,9 +6894,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 0a670ae835e..5581c601495 100644 --- a/src/osd/ReplicatedPG.h +++ b/src/osd/ReplicatedPG.h @@ -813,18 +813,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; @@ -862,7 +850,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); |