]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
OSD: simplify _share_map_incoming based on _should_share_map()
authorGreg Farnum <greg@inktank.com>
Thu, 20 Mar 2014 22:57:30 +0000 (15:57 -0700)
committerGreg Farnum <greg@inktank.com>
Mon, 5 May 2014 22:29:18 +0000 (15:29 -0700)
Also, remove the bool return code since nobody looks at it.

Signed-off-by: Greg Farnum <greg@inktank.com>
src/osd/OSD.cc
src/osd/OSD.h

index c83d94ad74718fd3fed527dfcddd721f6b69d3b0..104f7c298470507efd2d988641a1233490a2c949 100644 (file)
@@ -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;
 }
 
 
index 6dfd1e8b30bebbf6e7585f83d64c888efb737ef0..ffd9024c9b9e84f3a4fb4c713df4e278fe47d70b 100644 (file)
@@ -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());