]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cephfs-mirror: note current peer set
authorVenky Shankar <vshankar@redhat.com>
Fri, 23 Oct 2020 08:58:02 +0000 (04:58 -0400)
committerVenky Shankar <vshankar@redhat.com>
Tue, 12 Jan 2021 10:56:52 +0000 (05:56 -0500)
Signed-off-by: Venky Shankar <vshankar@redhat.com>
src/tools/cephfs_mirror/FSMirror.cc
src/tools/cephfs_mirror/FSMirror.h

index 0ea0d887f38cd0a32d3926359d476e17c5957922..710fa97907df3ab033746392148adb54c446c975 100644 (file)
@@ -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;
index 0bc63f8d98c9744ff93d983bb921522140d3228b..67714c8013d1da7cdd3c5a02a7ae8ae12e016552 100644 (file)
@@ -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<std::string, std::less<>> m_directories;
+  Peers m_all_peers;
   std::map<Peer, PeerReplayer> m_peer_replayers;
 
   RadosRef m_cluster;