mon/PGMap: fix osd_epochs update

The insert() call here does not overwrite a previous entry, which means
that the osd_epochs map is never moving forward in time.  This seems to
have been broken since it was introduced in 091809b814.

Backport: emperor, dumpling
Signed-off-by: Sage Weil <sage@inktank.com>
This commit is contained in:
Sage Weil 2014-02-22 09:29:15 -08:00
parent df3ba724d5
commit 73c59a022f

View File

@ -229,8 +229,9 @@ void PGMap::apply_incremental(CephContext *cct, const Incremental& inc)
stat_osd_sub(t->second);
t->second = new_stats;
}
assert(inc.get_osd_epochs().find(osd) != inc.get_osd_epochs().end());
osd_epochs.insert(*(inc.get_osd_epochs().find(osd)));
map<int32_t,epoch_t>::const_iterator j = inc.get_osd_epochs().find(osd);
assert(j != inc.get_osd_epochs().end());
osd_epochs[j->first] = j->second;
stat_osd_add(new_stats);