diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 577e93c29deb..00d95fefdc6f 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c @@ -486,6 +486,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. */