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>
This commit is contained in:
Родитель
bf118a342f
Коммит
414adf14cd
|
@ -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,
|
||||
*parent = NULL;
|
||||
struct nfs4_state_owner *sp, *res = NULL;
|
||||
struct nfs4_state_owner *sp;
|
||||
|
||||
while (*p != NULL) {
|
||||
parent = *p;
|
||||
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)
|
||||
p = &parent->rb_left;
|
||||
else if (cred > sp->so_cred)
|
||||
p = &parent->rb_right;
|
||||
else {
|
||||
atomic_inc(&sp->so_count);
|
||||
res = sp;
|
||||
break;
|
||||
return sp;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static struct nfs4_state_owner *
|
||||
|
|
Загрузка…
Ссылка в новой задаче