// yay!
activate_map(t, fin->contexts);
+ } else {
+ // write updated pg state to store
+ for (hash_map<pg_t,PG*>::iterator i = pg_map.begin();
+ i != pg_map.end();
+ i++) {
+ PG *pg = i->second;
+ pg->lock_with_map_lock_held();
+ if (pg->dirty_info)
+ pg->write_info(t);
+ pg->unlock();
+ }
}
bool do_shutdown = false;
// process waiters
take_waiters(waiting_for_osdmap);
- // write updated pg state to store
- for (hash_map<pg_t,PG*>::iterator i = pg_map.begin();
- i != pg_map.end();
- i++) {
- PG *pg = i->second;
- if (pg->dirty_info)
- pg->write_info(t);
- }
-
// note in the superblock that we were clean thru the prior epoch
if (boot_epoch && boot_epoch >= superblock.mounted) {
superblock.mounted = boot_epoch;
PG::RecoveryCtx rctx(&query_map, &info_map, ¬ify_list, &tfin, &t);
pg->handle_activate_map(&rctx);
+
+ if (pg->dirty_info)
+ pg->write_info(t);
pg->unlock();
}