summary refs log tree commit diff
path: root/fs
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2015-03-04 15:59:05 -0500
committerTrond Myklebust <trond.myklebust@primarydata.com>2015-03-12 12:13:56 -0400
commit38942ba204639030b3f3cfe5748a6aff3c9dcc81 (patch)
tree9079ea191274f5aa236938690f3d73b49ffbf4b7 /fs
parentf0eede10fd401a1c5193e020cd372d7b7014d9f3 (diff)
downloadlinux-38942ba204639030b3f3cfe5748a6aff3c9dcc81.tar.gz
NFSv4: Append delegations to the per-client list instead of prepending
Do so on the assumption that for most use cases, that list will turn into
a more or less LRU-ordered list, and so the list traversals in
nfs_client_return_marked_delegations() are likely to be shorter before
hitting a candidate to return.

Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/nfs/delegation.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
index a6ad68865880..540ee260318c 100644
--- a/fs/nfs/delegation.c
+++ b/fs/nfs/delegation.c
@@ -378,7 +378,7 @@ int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct
 		if (freeme == NULL)
 			goto out;
 	}
-	list_add_rcu(&delegation->super_list, &server->delegations);
+	list_add_tail_rcu(&delegation->super_list, &server->delegations);
 	rcu_assign_pointer(nfsi->delegation, delegation);
 	delegation = NULL;