]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
mds: fix MDSMap::get_recovery_mds_set()
authorYan, Zheng <zyan@redhat.com>
Mon, 16 Jan 2017 08:27:39 +0000 (16:27 +0800)
committerYan, Zheng <zyan@redhat.com>
Wed, 18 Jan 2017 08:33:59 +0000 (16:33 +0800)
The function get set of mds rank that exist. it needs to consider
the damaged mds set.

Signed-off-by: Yan, Zheng <zyan@redhat.com>
src/mds/MDSMap.h

index f76bdfa5ca3fccf8c644fff2edf9adeafd3fe7b4..19f4af4c8dbba41880f87e2509484885933dda16 100644 (file)
@@ -414,11 +414,11 @@ public:
   }
   void get_recovery_mds_set(std::set<mds_rank_t>& s) const {
     s = failed;
-    for (std::map<mds_gid_t, mds_info_t>::const_iterator p = mds_info.begin();
-        p != mds_info.end();
-        ++p)
-      if (p->second.state >= STATE_REPLAY && p->second.state <= STATE_STOPPING)
-       s.insert(p->second.rank);
+    for (const auto& p : damaged)
+      s.insert(p);
+    for (const auto& p : mds_info)
+      if (p.second.state >= STATE_REPLAY && p.second.state <= STATE_STOPPING)
+       s.insert(p.second.rank);
   }
 
   void