summaryrefslogtreecommitdiff
path: root/src/osd/OSD.cc
diff options
context:
space:
mode:
authorSage Weil <sage@inktank.com>2013-05-29 12:16:28 -0700
committerSage Weil <sage@inktank.com>2013-05-29 22:43:49 -0700
commitb586f4a92dae1caca32f9bcd392467da28f607bb (patch)
tree4443a15d41c3b1ebf8f0e02970f855c78fcc72ba /src/osd/OSD.cc
parente1dc3fd300999dd35530ce619fd433094365d6cd (diff)
downloadceph-b586f4a92dae1caca32f9bcd392467da28f607bb.tar.gz
osd: factor out _remove_heartbeat_peer
Signed-off-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'src/osd/OSD.cc')
-rw-r--r--src/osd/OSD.cc30
1 files changed, 18 insertions, 12 deletions
diff --git a/src/osd/OSD.cc b/src/osd/OSD.cc
index cf08418262b..505d21be0cf 100644
--- a/src/osd/OSD.cc
+++ b/src/osd/OSD.cc
@@ -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;