From 667769c624949dc8e6b55403891d9ba85e003446 Mon Sep 17 00:00:00 2001 From: Greg Farnum Date: Thu, 20 Mar 2014 15:57:30 -0700 Subject: [PATCH] OSD: simplify _share_map_incoming based on _should_share_map() Also, remove the bool return code since nobody looks at it. Signed-off-by: Greg Farnum --- src/osd/OSD.cc | 49 ++++++++++++++----------------------------------- src/osd/OSD.h | 2 +- 2 files changed, 15 insertions(+), 36 deletions(-) diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc index c83d94ad74718..104f7c2984705 100644 --- a/src/osd/OSD.cc +++ b/src/osd/OSD.cc @@ -4677,62 +4677,41 @@ bool OSD::_should_share_map(entity_name_t name, Connection *con, return should_send; } -bool OSD::_share_map_incoming( +void OSD::_share_map_incoming( entity_name_t name, Connection *con, epoch_t epoch, OSDMapRef& osdmap, Session* session) { - bool shared = false; dout(20) << "_share_map_incoming " << name << " " << con->get_peer_addr() << " " << epoch << dendl; assert(is_active()); - // does client have old map? - if (name.is_client()) { - bool sendmap = epoch < osdmap->get_epoch(); - if (sendmap && session) { - if (session->last_sent_epoch < osdmap->get_epoch()) { - session->last_sent_epoch = osdmap->get_epoch(); - } else { - sendmap = false; //we don't need to send it out again - dout(15) << name << " already sent incremental to update from epoch " - << epoch << dendl; - } - } - if (sendmap) { + bool want_shared = _should_share_map(name, con, epoch, osdmap, session); + + if (want_shared){ + if (name.is_client()) { dout(10) << name << " has old map " << epoch - << " < " << osdmap->get_epoch() << dendl; + << " < " << osdmap->get_epoch() << dendl; + // we know the Session is valid or we wouldn't be sending + session->last_sent_epoch = osdmap->get_epoch(); send_incremental_map(epoch, con, osdmap); - shared = true; - } - } - - // does peer have old map? - if (con->get_messenger() == 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 = note_peer_epoch(name.num(), epoch); - - // share? - if (has < osdmap->get_epoch()) { + } else if (con->get_messenger() == 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; + << " has old map " << epoch << " < " + << osdmap->get_epoch() << dendl; note_peer_epoch(name.num(), osdmap->get_epoch()); send_incremental_map(epoch, con, osdmap); - shared = true; } } - if (session) session->put(); - return shared; } diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 6dfd1e8b30beb..ffd9024c9b9e8 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -1339,7 +1339,7 @@ private: bool _should_share_map(entity_name_t name, Connection *con, epoch_t epoch, OSDMapRef& osdmap, Session *session); - bool _share_map_incoming(entity_name_t name, Connection *con, epoch_t epoch, + void _share_map_incoming(entity_name_t name, Connection *con, epoch_t epoch, OSDMapRef& osdmap, Session *session); void _share_map_outgoing(int peer, Connection *con, OSDMapRef map = OSDMapRef()); -- 2.39.5