Commit 414adf14 authored by Chuck Lever's avatar Chuck Lever Committed by Trond Myklebust

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: default avatarChuck Lever <chuck.lever@oracle.com>
Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent bf118a34
...@@ -377,31 +377,22 @@ nfs4_find_state_owner_locked(struct nfs_server *server, struct rpc_cred *cred) ...@@ -377,31 +377,22 @@ nfs4_find_state_owner_locked(struct nfs_server *server, struct rpc_cred *cred)
{ {
struct rb_node **p = &server->state_owners.rb_node, struct rb_node **p = &server->state_owners.rb_node,
*parent = NULL; *parent = NULL;
struct nfs4_state_owner *sp, *res = NULL; struct nfs4_state_owner *sp;
while (*p != NULL) { while (*p != NULL) {
parent = *p; parent = *p;
sp = rb_entry(parent, struct nfs4_state_owner, so_server_node); sp = rb_entry(parent, struct nfs4_state_owner, so_server_node);
if (server < sp->so_server) {
p = &parent->rb_left;
continue;
}
if (server > sp->so_server) {
p = &parent->rb_right;
continue;
}
if (cred < sp->so_cred) if (cred < sp->so_cred)
p = &parent->rb_left; p = &parent->rb_left;
else if (cred > sp->so_cred) else if (cred > sp->so_cred)
p = &parent->rb_right; p = &parent->rb_right;
else { else {
atomic_inc(&sp->so_count); atomic_inc(&sp->so_count);
res = sp; return sp;
break;
} }
} }
return res; return NULL;
} }
static struct nfs4_state_owner * static struct nfs4_state_owner *
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment