]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
search_for_missing:recalc stats if unfound changed
authorColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Mon, 15 Nov 2010 22:38:36 +0000 (14:38 -0800)
committerColin Patrick McCabe <cmccabe@alumni.cmu.edu>
Mon, 15 Nov 2010 22:38:36 +0000 (14:38 -0800)
Signed-off-by: Colin McCabe <colinm@hq.newdream.net>
src/osd/PG.cc

index 2942e2d01de5447a0f1742b17342a9e707b5ce59..d23ec191f386218ec81dcb37f83bbba24241d2fb 100644 (file)
@@ -519,6 +519,8 @@ void PG::merge_log(ObjectStore::Transaction& t,
 void PG::search_for_missing(const Info &oinfo, const Missing *omissing,
                            int fromosd)
 {
+  bool stats_updated = false;
+
   // found items?
   for (map<sobject_t,Missing::item>::iterator p = missing.missing.begin();
        p != missing.missing.end();
@@ -552,12 +554,16 @@ void PG::search_for_missing(const Info &oinfo, const Missing *omissing,
       if (wmo != waiting_for_missing_object.end()) {
        osd->take_waiters(wmo->second);
       }
+      stats_updated = true;
       missing_loc[soid].insert(fromosd);
     }
     else {
       ml->second.insert(fromosd);
     }
   }
+  if (stats_updated) {
+    update_stats();
+  }
 
   dout(20) << "search_for_missing missing " << missing.missing << dendl;
 }