- /* Add to sorted list. Presumably latest rpcs will have the latest
- deadlines, so search backward. */
- list_for_each_entry_reverse(rq, &svc->srv_at_list, rq_timed_list) {
- if (req->rq_deadline >= rq->rq_deadline) {
- list_add(&req->rq_timed_list, &rq->rq_timed_list);
- found++;
- break;
+
+ wtimes = req->rq_deadline / array->paa_size;
+ index = req->rq_deadline % array->paa_size;
+ if (array->paa_reqs_count[index] > 0)
+ rq = list_entry(array->paa_reqs_array[index].next,
+ struct ptlrpc_request, rq_timed_list);
+
+ if (rq != NULL && (rq->rq_deadline / array->paa_size) < wtimes) {
+ /* latest rpcs will have the latest deadlines in the list,
+ * so search backward. */
+ list_for_each_entry_reverse(rq, &array->paa_reqs_array[index],
+ rq_timed_list) {
+ if (req->rq_deadline >= rq->rq_deadline) {
+ list_add(&req->rq_timed_list,
+ &rq->rq_timed_list);
+ break;
+ }