We shouldn't need this -- we check the pg waiters list on each
map.
Signed-off-by: Samuel Just <sam.just@inktank.com>
Reviewed-by: Greg Farnum <greg@inktank.com>
dout(7) << "activate_map version " << osdmap->get_epoch() << dendl;
- wake_all_pg_waiters(); // the pg mapping may have shifted
-
if (osdmap->test_flag(CEPH_OSDMAP_FULL)) {
dout(10) << " osdmap flagged full, doing onetime osdmap subscribe" << dendl;
osdmap_subscribe(osdmap->get_epoch() + 1, true);
dout(10) << "check_replay_queue pgid " << pgid << " (not found)" << dendl;
}
}
-
- // wake up _all_ pg waiters; raw pg -> actual pg mapping may have shifted
- wake_all_pg_waiters();
}
waiting_for_pg.erase(pgid);
}
}
- void wake_all_pg_waiters() {
- for (map<spg_t, list<OpRequestRef> >::iterator p = waiting_for_pg.begin();
- p != waiting_for_pg.end();
- ++p)
- take_waiters_front(p->second);
- waiting_for_pg.clear();
- }
-
// -- pg creation --
struct create_pg_info {