aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4proc.c
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-11-01 17:07:07 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-12-05 18:30:50 -0500
commit275e7e20aa8599719729f8ef4c09c9bfc4895642 (patch)
treed56472ae8611905d0ba8c5bb51e8a9651615fd57 /fs/nfs/nfs4proc.c
parent7b939a3f44293516c4225f640e8c4b9200beeabc (diff)
NFSv4.1: Remove the 'FIFO' behaviour for nfs41_setup_sequence
It is more important to preserve the task priority behaviour, which ensures that things like reclaim writes take precedence over background and kupdate writes. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4proc.c')
-rw-r--r--fs/nfs/nfs4proc.c15
1 files changed, 1 insertions, 14 deletions
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index 87525eb60bd8..4b1635ce658d 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -379,12 +379,6 @@ static void renew_lease(const struct nfs_server *server, unsigned long timestamp
379 379
380#if defined(CONFIG_NFS_V4_1) 380#if defined(CONFIG_NFS_V4_1)
381 381
382bool nfs4_set_task_privileged(struct rpc_task *task, void *dummy)
383{
384 rpc_task_set_priority(task, RPC_PRIORITY_PRIVILEGED);
385 return true;
386}
387
388static void nfs41_sequence_free_slot(struct nfs4_sequence_res *res) 382static void nfs41_sequence_free_slot(struct nfs4_sequence_res *res)
389{ 383{
390 struct nfs4_session *session; 384 struct nfs4_session *session;
@@ -412,8 +406,7 @@ static void nfs41_sequence_free_slot(struct nfs4_sequence_res *res)
412 if (tbl->highest_used_slotid != NFS4_NO_SLOT) 406 if (tbl->highest_used_slotid != NFS4_NO_SLOT)
413 send_new_highest_used_slotid = false; 407 send_new_highest_used_slotid = false;
414 if (!nfs4_session_draining(session)) { 408 if (!nfs4_session_draining(session)) {
415 if (rpc_wake_up_first(&tbl->slot_tbl_waitq, 409 if (rpc_wake_up_next(&tbl->slot_tbl_waitq) != NULL)
416 nfs4_set_task_privileged, NULL) != NULL)
417 send_new_highest_used_slotid = false; 410 send_new_highest_used_slotid = false;
418 } 411 }
419 spin_unlock(&tbl->slot_tbl_lock); 412 spin_unlock(&tbl->slot_tbl_lock);
@@ -527,12 +520,6 @@ int nfs41_setup_sequence(struct nfs4_session *session,
527 goto out_sleep; 520 goto out_sleep;
528 } 521 }
529 522
530 if (!rpc_queue_empty(&tbl->slot_tbl_waitq) &&
531 !rpc_task_has_priority(task, RPC_PRIORITY_PRIVILEGED)) {
532 dprintk("%s enforce FIFO order\n", __func__);
533 goto out_sleep;
534 }
535
536 slot = nfs4_alloc_slot(tbl); 523 slot = nfs4_alloc_slot(tbl);
537 if (IS_ERR(slot)) { 524 if (IS_ERR(slot)) {
538 /* If out of memory, try again in 1/4 second */ 525 /* If out of memory, try again in 1/4 second */