]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: only request replica backlogs one at a time when searching for lost objects
authorSage Weil <sage@newdream.net>
Mon, 22 Dec 2008 19:39:36 +0000 (11:39 -0800)
committerSage Weil <sage@newdream.net>
Tue, 23 Dec 2008 20:19:07 +0000 (12:19 -0800)
src/osd/PG.cc

index 36ab5cf4d9665275200ff66588d9c37ad490a986..2f53a292aec0260e54535c600fdb0b5fb62710ea 100644 (file)
@@ -1179,7 +1179,6 @@ void PG::peer(ObjectStore::Transaction& t,
     // let's pull info+logs from _everyone_ (strays included, this
     // time) in search of missing objects.
 
-    bool waiting = false;
     for (map<int,Info>::iterator it = peer_info.begin();
          it != peer_info.end();
          it++) {
@@ -1190,19 +1189,17 @@ void PG::peer(ObjectStore::Transaction& t,
 
       if (peer_summary_requested.count(peer)) {
         dout(10) << " already requested summary/backlog from osd" << peer << dendl;
-        waiting = true;
         continue;
       }
 
       dout(10) << " requesting summary/backlog from osd" << peer << dendl;      
       query_map[peer][info.pgid] = Query(Query::BACKLOG, info.history);
       peer_summary_requested.insert(peer);
-      waiting = true;
+      return;
     }
     
-    if (!waiting)
-      dout(10) << (missing.num_missing() - missing_loc.size())
-              << " objects are still lost, waiting+hoping for a notify from someone else!" << dendl;
+    dout(10) << (missing.num_missing() - missing_loc.size())
+            << " objects are still lost, waiting+hoping for a notify from someone else!" << dendl;
     return;
   }