missing_loc.count(soid) == 0 only means unfound if it's not missing on the
primary.
Signed-off-by: Sage Weil <sage@newdream.net>
int peer = *a;
map<int, Missing>::const_iterator pm = peer_missing.find(peer);
if (pm == peer_missing.end()) {
- dout(10) << __func__ << ": osd " << peer << " is not up-to-date. We "
- << "have no peer_missing information for this osd." << dendl;
+ dout(10) << __func__ << ": osd" << peer << " don't have missing set" << dendl;
uptodate = false;
continue;
}
if (pm->second.num_missing()) {
- dout(10) << __func__ << ": osd " << peer << " has " << pm->second.num_missing() << " missing" << dendl;
+ dout(10) << __func__ << ": osd" << peer << " has " << pm->second.num_missing() << " missing" << dendl;
uptodate = false;
}
}
dout(10) << __func__ << ": already pushing " << soid << dendl;
continue;
}
- if (missing_loc.find(soid) == missing_loc.end()) {
- dout(10) << __func__ << ": " << soid << " is still unfound." << dendl;
- continue;
- }
if (missing.is_missing(soid)) {
- dout(10) << __func__ << ": still missing on primary " << soid << dendl;
+ if (missing_loc.find(soid) == missing_loc.end())
+ dout(10) << __func__ << ": " << soid << " still unfound" << dendl;
+ else
+ dout(10) << __func__ << ": " << soid << " still missing on primary" << dendl;
continue;
}
+
dout(10) << __func__ << ": recover_object_replicas(" << soid << ")" << dendl;
started += recover_object_replicas(soid);
}