]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
rbd-mirror: properly update replayers
authorMykola Golub <mgolub@mirantis.com>
Mon, 7 Mar 2016 11:10:04 +0000 (13:10 +0200)
committerMykola Golub <mgolub@mirantis.com>
Mon, 7 Mar 2016 13:05:11 +0000 (15:05 +0200)
Previously update_replayers always deleted replayers due to using
empty peers set.

Signed-off-by: Mykola Golub <mgolub@mirantis.com>
src/tools/rbd_mirror/Mirror.cc

index 6bab7adeaf45c3522bb9ac36fda70607f5567a03..5887899802c462046f58d7c8a45cb9a209d5608b 100644 (file)
@@ -75,7 +75,6 @@ void Mirror::update_replayers(const map<peer_t, set<int64_t> > &peer_configs)
 {
   dout(20) << "enter" << dendl;
   assert(m_lock.is_locked());
-  set<peer_t> peers;
   for (auto &kv : peer_configs) {
     const peer_t &peer = kv.first;
     if (m_replayers.find(peer) == m_replayers.end()) {
@@ -93,7 +92,7 @@ void Mirror::update_replayers(const map<peer_t, set<int64_t> > &peer_configs)
   // TODO: make async
   for (auto it = m_replayers.begin(); it != m_replayers.end();) {
     peer_t peer = it->first;
-    if (peers.find(peer) == peers.end()) {
+    if (peer_configs.find(peer) == peer_configs.end()) {
       dout(20) << "removing replayer for " << peer << dendl;
       m_replayers.erase(it++);
     } else {