Since we are requeuing stuff anyway, do it all in the correct order. This
fixes a bug where take_waiters() comes along later (at activate_map time)
and puts waiting_for_map events at the front of the queue, in front of
e.g. waiting_for_missing. This breaks ordering from the client's
perspective.
The convention should be: whenever you requeue, requeuing everything
that logically follows it first.
Fixes: #2947
Signed-off-by: Sage Weil <sage@inktank.com>
Reviewed-by: Samuel Just <sam.just@inktank.com>
{
dout(10) << "on_change" << dendl;
+ // requeue everything in the reverse order they should be
+ // reexamined.
+ requeue_ops(waiting_for_map);
+
clear_scrub_reserved();
scrub_clear_state();