last_beacon[p->second.addr] = g_clock.now();
if (mon->osdmon()->paxos->is_writeable()) {
+
+ bool propose_osdmap = false;
+
map<entity_addr_t, utime_t>::iterator p = last_beacon.begin();
while (p != last_beacon.end()) {
entity_addr_t addr = p->first;
utime_t until = now;
until += g_conf.mds_blacklist_interval;
mon->osdmon()->blacklist(addr, until);
- mon->osdmon()->propose_pending();
+ propose_osdmap = true;
}
do_propose = true;
last_beacon.erase(addr);
}
+
+ if (propose_osdmap)
+ mon->osdmon()->propose_pending();
+
}