requeue_ops(waiting_for_all_missing);
waiting_for_all_missing.clear();
+ // take commit waiters; these are dups of what
+ // apply_and_flush_repops() will requeue.
+ for (map<eversion_t, list<OpRequestRef> >::iterator p = waiting_for_ondisk.begin();
+ p != waiting_for_ondisk.end();
+ p++)
+ requeue_ops(p->second);
+ waiting_for_ondisk.clear();
+ waiting_for_ack.clear();
+
// this will requeue ops we were working on but didn't finish
apply_and_flush_repops(is_primary());
void ReplicatedPG::on_role_change()
{
dout(10) << "on_role_change" << dendl;
-
- // take commit waiters
- for (map<eversion_t, list<OpRequestRef> >::iterator p = waiting_for_ondisk.begin();
- p != waiting_for_ondisk.end();
- p++)
- requeue_ops(p->second);
- waiting_for_ondisk.clear();
- waiting_for_ack.clear();
}
-
// clear state. called on recovery completion AND cancellation.
void ReplicatedPG::_clear_recovery_state()
{