OSD: write_info/log during process_peering_events, do_recovery

Signed-off-by: Samuel Just <sam.just@inktank.com>
This commit is contained in:
Samuel Just 2012-06-17 16:25:09 -07:00
parent c6db1b2ee2
commit 1b558fba0e
2 changed files with 4 additions and 1 deletions

View File

@ -5201,10 +5201,11 @@ void OSD::process_peering_events(const list<PG*> &pgs)
pg->peering_queue.pop_front();
pg->handle_peering_event(evt, &rctx);
}
dispatch_context_transaction(rctx, pg);
need_up_thru = pg->need_up_thru || need_up_thru;
same_interval_since = MAX(pg->info.history.same_interval_since,
same_interval_since);
pg->write_if_dirty(*rctx.transaction);
dispatch_context_transaction(rctx, pg);
pg->unlock();
}
if (need_up_thru)

View File

@ -356,6 +356,8 @@ public:
void lock(bool no_lockdep = false);
void unlock() {
//generic_dout(0) << this << " " << info.pgid << " unlock" << dendl;
assert(!dirty_info);
assert(!dirty_log);
_lock.Unlock();
}