We infer an empty missing set, but weren't calculating object locations
based on that. Usually it was okay because we already had another
location, but not always! And especially not when one location turns out
to be bad and we need to go to another.
Signed-off-by: Sage Weil <sage.weil@dreamhost.com>
if (pi.last_update == pi.last_complete) {
dout(10) << " infering no missing (last_update==last_complete) for osd" << peer << dendl;
peer_missing[peer].num_missing(); // just create the entry.
+ search_for_missing(peer_info[peer], &peer_missing[peer], peer);
continue;
} else {
dout(10) << " still need log+missing from osd" << peer << dendl;