aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2011-12-06 16:13:39 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-01-05 10:42:42 -0500
commit414adf14cd3b52e411f79d941a15d0fd4af427fc (patch)
treeac70f3249a5985d1a89d56955266b11c733c61eb /fs
parentbf118a342f10dafe44b14451a1392c3254629a1f (diff)
NFS: Clean up nfs4_find_state_owners_locked()
There's no longer a need to check the so_server field in the state owner, because nowadays the RB tree we search for state owners contains owners for that only server. Make nfs4_find_state_owners_locked() use the same tree searching logic as nfs4_insert_state_owner_locked(). Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs')
-rw-r--r--fs/nfs/nfs4state.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index 6a7107ae6b72..6354e4fcc829 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -377,31 +377,22 @@ nfs4_find_state_owner_locked(struct nfs_server *server, struct rpc_cred *cred)
377{ 377{
378 struct rb_node **p = &server->state_owners.rb_node, 378 struct rb_node **p = &server->state_owners.rb_node,
379 *parent = NULL; 379 *parent = NULL;
380 struct nfs4_state_owner *sp, *res = NULL; 380 struct nfs4_state_owner *sp;
381 381
382 while (*p != NULL) { 382 while (*p != NULL) {
383 parent = *p; 383 parent = *p;
384 sp = rb_entry(parent, struct nfs4_state_owner, so_server_node); 384 sp = rb_entry(parent, struct nfs4_state_owner, so_server_node);
385 385
386 if (server < sp->so_server) {
387 p = &parent->rb_left;
388 continue;
389 }
390 if (server > sp->so_server) {
391 p = &parent->rb_right;
392 continue;
393 }
394 if (cred < sp->so_cred) 386 if (cred < sp->so_cred)
395 p = &parent->rb_left; 387 p = &parent->rb_left;
396 else if (cred > sp->so_cred) 388 else if (cred > sp->so_cred)
397 p = &parent->rb_right; 389 p = &parent->rb_right;
398 else { 390 else {
399 atomic_inc(&sp->so_count); 391 atomic_inc(&sp->so_count);
400 res = sp; 392 return sp;
401 break;
402 } 393 }
403 } 394 }
404 return res; 395 return NULL;
405} 396}
406 397
407static struct nfs4_state_owner * 398static struct nfs4_state_owner *