diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 8cffcf58e63865520f11d683cce2f3c0b75df539..5af838a329e145256536dbeea0f58aebe4233cb9 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c @@ -502,6 +502,15 @@ static struct rpc_task *__rpc_find_next_queued_priority(struct rpc_wait_queue *q struct list_head *q; struct rpc_task *task; + /* + * Service the privileged queue. + */ + q = &queue->tasks[RPC_NR_PRIORITY - 1]; + if (queue->maxpriority > RPC_PRIORITY_PRIVILEGED && !list_empty(q)) { + task = list_first_entry(q, struct rpc_task, u.tk_wait.list); + goto out; + } + /* * Service a batch of tasks from a single owner. */