]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
osd: infer missing map is empty when last_complete==last_update
authorSage Weil <sage@newdream.net>
Tue, 20 Jul 2010 20:24:26 +0000 (13:24 -0700)
committerSage Weil <sage@newdream.net>
Tue, 20 Jul 2010 20:24:38 +0000 (13:24 -0700)
src/osd/PG.cc

index 0032c41afe160ea6bb0f4a72a5022c826d91fe58..16397ec5ce463c24d26ba2dfa3f3f31ac03bc3c1 100644 (file)
@@ -1311,8 +1311,13 @@ void PG::peer(ObjectStore::Transaction& t, list<Context*>& tfin,
     if (pi.is_empty())
       continue;
     if (peer_missing.count(peer) == 0) {
-      dout(10) << " still need log+missing from osd" << peer << dendl;
-      have_all_missing = false;
+      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.
+      } else {
+       dout(10) << " still need log+missing from osd" << peer << dendl;
+       have_all_missing = false;
+      }
     }
     if (peer_log_requested.count(peer) ||
         peer_summary_requested.count(peer)) continue;