From cb8d181ab24087ecb546b9c2fba1ec6cea5e97e8 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Wed, 26 Nov 2008 12:39:36 -0800 Subject: [PATCH] objecter: scan_pgs even on original full map We may have queued ops before getting _any_ map; those still need to be kicked. --- src/osdc/Objecter.cc | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/osdc/Objecter.cc b/src/osdc/Objecter.cc index 8ef2a35251c41..d97f5fbb7a6ba 100644 --- a/src/osdc/Objecter.cc +++ b/src/osdc/Objecter.cc @@ -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; -- 2.39.5