From: Greg Farnum Date: Fri, 21 Mar 2014 22:59:08 +0000 (-0700) Subject: OSD: move should_share_map and share_map_incoming to OSDService X-Git-Tag: v0.81~57^2~16 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0fbaa160c1cdc91de564ce10dc6217fd6b6b9578;p=ceph.git OSD: move should_share_map and share_map_incoming to OSDService Signed-off-by: Greg Farnum --- diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index acd953511d3f..5218b7b29332 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -4652,12 +4652,12 @@ void OSD::forget_peer_epoch(int peer, epoch_t as_of) } } -bool OSD::_should_share_map(entity_name_t name, Connection *con, - epoch_t epoch, OSDMapRef& osdmap, - const epoch_t *sent_epoch_p) +bool OSDService::should_share_map(entity_name_t name, Connection *con, + epoch_t epoch, OSDMapRef& osdmap, + const epoch_t *sent_epoch_p) { bool should_send = false; - dout(20) << "_should_share_map " + dout(20) << "should_share_map " << name << " " << con->get_peer_addr() << " " << epoch << dendl; @@ -4674,12 +4674,12 @@ bool OSD::_should_share_map(entity_name_t name, Connection *con, } } - if (con->get_messenger() == cluster_messenger && + if (con->get_messenger() == osd->cluster_messenger && osdmap->is_up(name.num()) && (osdmap->get_cluster_addr(name.num()) == con->get_peer_addr() || osdmap->get_hb_back_addr(name.num()) == con->get_peer_addr())) { // remember - epoch_t has = get_peer_epoch(name.num()); + epoch_t has = osd->get_peer_epoch(name.num()); // share? if (has < osdmap->get_epoch()) { @@ -4693,21 +4693,21 @@ bool OSD::_should_share_map(entity_name_t name, Connection *con, return should_send; } -void OSD::_share_map_incoming( - entity_name_t name, - Connection *con, - epoch_t epoch, - OSDMapRef& osdmap, - epoch_t *sent_epoch_p) +void OSDService::share_map_incoming( + entity_name_t name, + Connection *con, + epoch_t epoch, + OSDMapRef& osdmap, + epoch_t *sent_epoch_p) { - dout(20) << "_share_map_incoming " + dout(20) << "share_map_incoming " << name << " " << con->get_peer_addr() << " " << epoch << dendl; - assert(is_active()); + assert(osd->is_active()); - bool want_shared = _should_share_map(name, con, epoch, - osdmap, sent_epoch_p); + bool want_shared = should_share_map(name, con, epoch, + osdmap, sent_epoch_p); if (want_shared){ if (name.is_client()) { @@ -4715,16 +4715,16 @@ void OSD::_share_map_incoming( << " < " << osdmap->get_epoch() << dendl; // we know the Session is valid or we wouldn't be sending *sent_epoch_p = osdmap->get_epoch(); - send_incremental_map(epoch, con, osdmap); - } else if (con->get_messenger() == cluster_messenger && + osd->send_incremental_map(epoch, con, osdmap); + } else if (con->get_messenger() == osd->cluster_messenger && osdmap->is_up(name.num()) && (osdmap->get_cluster_addr(name.num()) == con->get_peer_addr() || osdmap->get_hb_back_addr(name.num()) == con->get_peer_addr())) { dout(10) << name << " " << con->get_peer_addr() << " has old map " << epoch << " < " << osdmap->get_epoch() << dendl; - note_peer_epoch(name.num(), osdmap->get_epoch()); - send_incremental_map(epoch, con, osdmap); + osd->note_peer_epoch(name.num(), osdmap->get_epoch()); + osd->send_incremental_map(epoch, con, osdmap); } } } @@ -7488,7 +7488,7 @@ struct send_map_on_destruct { if (client_session) { client_session->sent_epoch_lock.Lock(); } - osd->_share_map_incoming( + osd->service.share_map_incoming( m->get_source(), con.get(), map_epoch, @@ -7655,7 +7655,7 @@ void OSD::handle_replica_op(OpRequestRef op, OSDMapRef osdmap) if (peer_session) { peer_session->sent_epoch_lock.Lock(); } - _share_map_incoming( + service.share_map_incoming( m->get_source(), m->get_connection().get(), m->map_epoch, osdmap, NULL); @@ -7801,7 +7801,7 @@ void OSD::dequeue_op( if (session) { session->sent_epoch_lock.Lock(); } - _share_map_incoming( + service.share_map_incoming( m->get_source(), m->get_connection().get(), op->sent_epoch, diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 7d22df6443fb..6a4032c3d56a 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -419,6 +419,11 @@ public: } } + bool should_share_map(entity_name_t name, Connection *con, epoch_t epoch, + OSDMapRef& osdmap, const epoch_t *sent_epoch_p); + void share_map_incoming(entity_name_t name, Connection *con, epoch_t epoch, + OSDMapRef& osdmap, epoch_t *sent_epoch_p); + ConnectionRef get_con_osd_cluster(int peer, epoch_t from_epoch); pair get_con_osd_hb(int peer, epoch_t from_epoch); // (back, front) void send_message_osd_cluster(int peer, Message *m, epoch_t from_epoch); @@ -1342,10 +1347,7 @@ private: void forget_peer_epoch(int p, epoch_t e); friend struct send_map_on_destruct; - bool _should_share_map(entity_name_t name, Connection *con, epoch_t epoch, - OSDMapRef& osdmap, const epoch_t *sent_epoch_p); - void _share_map_incoming(entity_name_t name, Connection *con, epoch_t epoch, - OSDMapRef& osdmap, epoch_t *sent_epoch_p); + void _share_map_outgoing(int peer, Connection *con, OSDMapRef map = OSDMapRef());