ceph_assert(m_io_throttled.load() > 0);
item->set_throttled(flag);
if (item->were_all_throttled()) {
- this->requeue(item);
+ this->requeue_back(item);
--m_io_throttled;
this->signal();
}
}
throttle = t.second;
- tokens = item->tokens_requested(flag);
-
- if (throttle->get<ImageRequestWQ<I>, ImageDispatchSpec<I>,
+ if (item->tokens_requested(flag, &tokens) &&
+ throttle->get<ImageRequestWQ<I>, ImageDispatchSpec<I>,
&ImageRequestWQ<I>::handle_throttle_ready>(
tokens, this, item, flag)) {
blocked = true;
} else {
// since IO was stalled for acquire -- original IO order is preserved
// if we requeue this op for work queue processing
- this->requeue(req);
+ this->requeue_front(req);
}
ceph_assert(m_io_blockers.load() > 0);
} else {
// since IO was stalled for refresh -- original IO order is preserved
// if we requeue this op for work queue processing
- this->requeue(req);
+ this->requeue_front(req);
}
ceph_assert(m_io_blockers.load() > 0);