From b586f4a92dae1caca32f9bcd392467da28f607bb Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 29 May 2013 12:16:28 -0700 Subject: osd: factor out _remove_heartbeat_peer Signed-off-by: Sage Weil --- src/osd/OSD.cc | 30 ++++++++++++++++++------------ src/osd/OSD.h | 1 + 2 files changed, 19 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::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::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; diff --git a/src/osd/OSD.h b/src/osd/OSD.h index 978749d1a7e..4eb7c9f330a 100644 --- a/src/osd/OSD.h +++ b/src/osd/OSD.h @@ -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(); -- cgit v1.2.1