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>
}
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