if (m->newest_map && m->newest_map > last) {
dout(10) << " msg say newest map is " << m->newest_map << ", requesting more" << dendl;
- osdmap_subscribe(osdmap->get_epoch()+1, true);
+ osdmap_subscribe(osdmap->get_epoch()+1, false);
}
- else if (is_booting()) {
- start_boot(); // retry
+ else if (do_shutdown) {
+ osd_lock.Unlock();
+ shutdown();
+ osd_lock.Lock();
+ }
+ else if (is_preboot()) {
+ if (m->get_source().is_mon())
+ _preboot(m->oldest_map, m->newest_map);
+ else
+ start_boot();
}
else if (do_restart)
start_boot();