assert(waiting_for_degraded_object.empty());
assert(waiting_for_ondisk.empty());
assert(waiting_for_active.empty());
+ assert(waiting_for_scrub.empty());
osd->dequeue_pg(this, &waiting_for_peered);
scrubber.run_callbacks();
// requeue the writes from the chunk that just finished
- requeue_ops(waiting_for_active);
+ requeue_ops(waiting_for_scrub);
scrubber.state = PG::Scrubber::WAIT_DIGEST_UPDATES;
if (scrubber.active)
osd->dec_scrubs_active();
- requeue_ops(waiting_for_active);
+ requeue_ops(waiting_for_scrub);
if (scrubber.queue_snap_trim) {
dout(10) << "scrub finished, requeuing snap_trimmer" << dendl;
// ops waiting on active (require peered as well)
list<OpRequestRef> waiting_for_active;
+ list<OpRequestRef> waiting_for_scrub;
list<OpRequestRef> waiting_for_cache_not_full;
list<OpRequestRef> waiting_for_all_missing;
if (write_ordered &&
scrubber.write_blocked_by_scrub(head, get_sort_bitwise())) {
dout(20) << __func__ << ": waiting for scrub" << dendl;
- waiting_for_active.push_back(op);
+ waiting_for_scrub.push_back(op);
op->mark_delayed("waiting for scrub");
return;
}
dout(10) << __func__ << " " << hoid
<< " blocked by scrub" << dendl;
if (op) {
- waiting_for_active.push_back(op);
+ waiting_for_scrub.push_back(op);
op->mark_delayed("waiting for scrub");
dout(10) << __func__ << " " << hoid
- << " placing op in waiting_for_active" << dendl;
+ << " placing op in waiting_for_scrub" << dendl;
} else {
dout(10) << __func__ << " " << hoid
<< " no op, dropping on the floor" << dendl;
// requeue everything in the reverse order they should be
// reexamined.
requeue_ops(waiting_for_peered);
+ requeue_ops(waiting_for_active);
clear_scrub_reserved();
- // requeues waiting_for_active
+ // requeues waiting_for_scrub
scrub_clear_state();
cancel_copy_ops(is_primary());
if (op)
requeue_op(op);
requeue_ops(waiting_for_active);
+ requeue_ops(waiting_for_scrub);
requeue_ops(waiting_for_cache_not_full);
objects_blocked_on_cache_full.clear();
requeued = true;
if (scrubber.write_blocked_by_scrub(
p.first.get_head(),
get_sort_bitwise())) {
- waiting_for_active.splice(
- waiting_for_active.begin(),
+ waiting_for_scrub.splice(
+ waiting_for_scrub.begin(),
p.second,
p.second.begin(),
p.second.end());