]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: update missing_loc when infering an empty missing set
authorSage Weil <sage.weil@dreamhost.com>
Wed, 2 Mar 2011 00:02:48 +0000 (16:02 -0800)
committerSage Weil <sage.weil@dreamhost.com>
Wed, 2 Mar 2011 00:02:48 +0000 (16:02 -0800)
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>
src/osd/PG.cc

index b5ac5f2423e5fcd17afe13a68e29c892cfda57c7..d405441fbc85b9ef2e47bb7ddf1be9811660a2ed 100644 (file)
@@ -1634,6 +1634,7 @@ void PG::do_peer(ObjectStore::Transaction& t, list<Context*>& tfin,
       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;