]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
objecter: scan_pgs even on original full map
authorSage Weil <sage@newdream.net>
Wed, 26 Nov 2008 20:39:36 +0000 (12:39 -0800)
committerSage Weil <sage@newdream.net>
Wed, 26 Nov 2008 20:39:36 +0000 (12:39 -0800)
We may have queued ops before getting _any_ map; those still need to
be kicked.

src/osdc/Objecter.cc

index 8ef2a35251c41d79700c2f178ca49c56a2da73c5..d97f5fbb7a6bad83005425bd9799044984a84dac 100644 (file)
@@ -126,14 +126,13 @@ void Objecter::handle_osd_map(MOSDMap *m)
        assert(e == osdmap->get_epoch());
       }
       
-      // kick requests who might be timing out on the wrong osds
-      if (!changed_pgs.empty())
-       kick_requests(changed_pgs);
     } else {
       // first map.  we want the full thing.
       if (m->maps.count(m->get_last())) {
        dout(3) << "handle_osd_map decoding full epoch " << m->get_last() << dendl;
        osdmap->decode(m->maps[m->get_last()]);
+
+       scan_pgs(changed_pgs);
       } else {
        dout(3) << "handle_osd_map hmm, i want a full map, requesting" << dendl;
        int mon = monmap->pick_mon();
@@ -141,6 +140,10 @@ void Objecter::handle_osd_map(MOSDMap *m)
                                monmap->get_inst(mon));
       }
     }
+
+    // kick requests who might be timing out on the wrong osds
+    if (!changed_pgs.empty())
+      kick_requests(changed_pgs);
   }
   
   delete m;