summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-11-01 16:44:05 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-12-06 00:30:51 +0100
commit1e1093c7fd4951bb4272212c238d09cd7a22f5fc (patch)
tree6a4abee1ee3a3e45fad908761cecd1e4a8a650e4
parent104287cd4ebb5484c654551c102c25c94227f717 (diff)
downloadlinux-1e1093c7fd4951bb4272212c238d09cd7a22f5fc.tar.bz2
NFSv4.1: Don't mess with task priorities in nfs41_setup_sequence
We want to preserve the rpc_task priority for things like writebacks, that may have differing levels of urgency. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/nfs4proc.c8
-rw-r--r--net/sunrpc/sched.c1
2 files changed, 5 insertions, 4 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 7f8b42781338..99d99a5a3f61 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -536,8 +536,6 @@ int nfs41_setup_sequence(struct nfs4_session *session,
}
spin_unlock(&tbl->slot_tbl_lock);
- rpc_task_set_priority(task, RPC_PRIORITY_NORMAL);
-
args->sa_slot = slot;
dprintk("<-- %s slotid=%d seqid=%d\n", __func__,
@@ -556,8 +554,10 @@ out_success:
out_sleep:
/* Privileged tasks are queued with top priority */
if (args->sa_privileged)
- rpc_task_set_priority(task, RPC_PRIORITY_PRIVILEGED);
- rpc_sleep_on(&tbl->slot_tbl_waitq, task, NULL);
+ rpc_sleep_on_priority(&tbl->slot_tbl_waitq, task,
+ NULL, RPC_PRIORITY_PRIVILEGED);
+ else
+ rpc_sleep_on(&tbl->slot_tbl_waitq, task, NULL);
spin_unlock(&tbl->slot_tbl_lock);
return -EAGAIN;
}
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
index 85290266bea0..1aefc9fef866 100644
--- a/net/sunrpc/sched.c
+++ b/net/sunrpc/sched.c
@@ -379,6 +379,7 @@ void rpc_sleep_on_priority(struct rpc_wait_queue *q, struct rpc_task *task,
__rpc_sleep_on_priority(q, task, action, priority - RPC_PRIORITY_LOW);
spin_unlock_bh(&q->lock);
}
+EXPORT_SYMBOL_GPL(rpc_sleep_on_priority);
/**
* __rpc_do_wake_up_task - wake up a single rpc_task