diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index b8be7660b29a..8fc4a6b3422f 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c @@ -613,6 +613,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. */