diff options
author | Sage Weil <sage@inktank.com> | 2013-05-29 12:16:28 -0700 |
---|---|---|
committer | Sage Weil <sage@inktank.com> | 2013-05-29 22:43:49 -0700 |
commit | b586f4a92dae1caca32f9bcd392467da28f607bb (patch) | |
tree | 4443a15d41c3b1ebf8f0e02970f855c78fcc72ba /src | |
parent | e1dc3fd300999dd35530ce619fd433094365d6cd (diff) | |
download | ceph-b586f4a92dae1caca32f9bcd392467da28f607bb.tar.gz |
osd: factor out _remove_heartbeat_peer
Signed-off-by: Sage Weil <sage@inktank.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/osd/OSD.cc | 30 | ||||
-rw-r--r-- | 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<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; 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(); |