]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: factor out _remove_heartbeat_peer
authorSage Weil <sage@inktank.com>
Wed, 29 May 2013 19:16:28 +0000 (12:16 -0700)
committerSage Weil <sage@inktank.com>
Thu, 30 May 2013 05:43:49 +0000 (22:43 -0700)
Signed-off-by: Sage Weil <sage@inktank.com>
src/osd/OSD.cc
src/osd/OSD.h

index cf08418262b92f2d58ac27f0594ebec25c761caa..505d21be0cf0d89bb58944fce5bdbcab68b6fab7 100644 (file)
@@ -2274,6 +2274,23 @@ void OSD::_add_heartbeat_peer(int p)
   hi->epoch = osdmap->get_epoch();
 }
 
+void OSD::_remove_heartbeat_peer(int n)
+{
+  map<int,HeartbeatInfo>::iterator q = heartbeat_peers.find(n);
+  assert(q != heartbeat_peers.end());
+  dout(20) << " removing heartbeat peer osd." << n
+          << " " << q->second.con_back->get_peer_addr()
+          << " " << (q->second.con_front ? q->second.con_front->get_peer_addr() : entity_addr_t())
+          << dendl;
+  hbclient_messenger->mark_down(q->second.con_back);
+  q->second.con_back->put();
+  if (q->second.con_front) {
+    hbclient_messenger->mark_down(q->second.con_front);
+    q->second.con_front->put();
+  }
+  heartbeat_peers.erase(q);
+}
+
 void OSD::need_heartbeat_peer_update()
 {
   Mutex::Locker l(heartbeat_lock);
@@ -2361,18 +2378,7 @@ void OSD::maybe_update_heartbeat_peers()
        ++p) {
     if (want.count(*p))
       continue;
-    map<int,HeartbeatInfo>::iterator q = heartbeat_peers.find(*p);
-    dout(20) << " removing heartbeat peer osd." << q->first
-            << " " << q->second.con_back->get_peer_addr()
-            << " " << (q->second.con_front ? q->second.con_front->get_peer_addr() : entity_addr_t())
-            << dendl;
-    hbclient_messenger->mark_down(q->second.con_back);
-    q->second.con_back->put();
-    if (q->second.con_front) {
-      hbclient_messenger->mark_down(q->second.con_front);
-      q->second.con_front->put();
-    }
-    heartbeat_peers.erase(q);
+    _remove_heartbeat_peer(*p);
   }
 
   dout(10) << "maybe_update_heartbeat_peers " << heartbeat_peers.size() << " peers, extras " << extras << dendl;
index 978749d1a7e4fe830abba20d096d6d48d607feba..4eb7c9f330addaffbcbf89bcbd3fe6373f125dcc 100644 (file)
@@ -732,6 +732,7 @@ private:
   Messenger *hb_back_server_messenger;
   
   void _add_heartbeat_peer(int p);
+  void _remove_heartbeat_peer(int p);
   bool heartbeat_reset(Connection *con);
   void maybe_update_heartbeat_peers();
   void reset_heartbeat_peers();