From: Venky Shankar Date: Fri, 23 Oct 2020 08:58:02 +0000 (-0400) Subject: cephfs-mirror: note current peer set X-Git-Tag: v17.0.0~83^2~12 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=7165d929872585808ce65de80c7e69104f201d65;p=ceph.git cephfs-mirror: note current peer set Signed-off-by: Venky Shankar --- diff --git a/src/tools/cephfs_mirror/FSMirror.cc b/src/tools/cephfs_mirror/FSMirror.cc index 0ea0d887f38cd..710fa97907df3 100644 --- a/src/tools/cephfs_mirror/FSMirror.cc +++ b/src/tools/cephfs_mirror/FSMirror.cc @@ -399,6 +399,7 @@ void FSMirror::add_peer(const Peer &peer) { dout(10) << ": peer=" << peer << dendl; std::scoped_lock locker(m_lock); + m_all_peers.emplace(peer); auto p = m_peer_replayers.emplace(peer, PeerReplayer()); ceph_assert(m_peer_replayers.size() == 1); // support only a single peer if (p.second) { @@ -410,6 +411,7 @@ void FSMirror::remove_peer(const Peer &peer) { dout(10) << ": peer=" << peer << dendl; std::unique_lock locker(m_lock); + m_all_peers.erase(peer); auto it = m_peer_replayers.find(peer); if (it != m_peer_replayers.end()) { dout(5) << ": shutting down replayers for peer=" << peer << dendl; diff --git a/src/tools/cephfs_mirror/FSMirror.h b/src/tools/cephfs_mirror/FSMirror.h index 0bc63f8d98c97..67714c8013d1d 100644 --- a/src/tools/cephfs_mirror/FSMirror.h +++ b/src/tools/cephfs_mirror/FSMirror.h @@ -48,12 +48,8 @@ public: } Peers get_peers() { - Peers peers; std::scoped_lock locker(m_lock); - for ([[maybe_unused]] auto &[peer, peer_replayer] : m_peer_replayers) { - peers.emplace(peer); - } - return peers; + return m_all_peers; } // admin socket helpers @@ -125,6 +121,7 @@ private: ceph::condition_variable m_cond; SnapListener m_snap_listener; std::set> m_directories; + Peers m_all_peers; std::map m_peer_replayers; RadosRef m_cluster;