osd: handle osds that no longer exist in prior_set_affected

Consider no-longer-existent OSDs lost.

Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
Sage Weil 2010-11-09 13:08:56 -08:00
parent e15c9569ba
commit ea56dfdc66

View File

@ -799,7 +799,13 @@ bool PG::prior_set_affected(OSDMap *osdmap)
dout(10) << "prior_set_affected: osd" << *p << " now up" << dendl;
return true;
}
// did someone in the prior set get lost?
// did someone in the prior set get lost or destroyed?
if (!osdmap->exists(o)) {
dout(10) << "prior_set_affected: osd" << o << " no longer exists" << dendl;
return true;
}
const osd_info_t& pinfo(osdmap->get_info(o));
if (pinfo.lost_at > pinfo.up_from) {
set<int>::const_iterator pl = prior_set_lost.find(o);