diff options
Diffstat (limited to 'fs/lockd/host.c')
-rw-r--r-- | fs/lockd/host.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/fs/lockd/host.c b/fs/lockd/host.c index 0bf4afb71d25..4990223a3e18 100644 --- a/fs/lockd/host.c +++ b/fs/lockd/host.c @@ -110,16 +110,13 @@ nlm_lookup_host(int server, const struct sockaddr_in *sin, if (host->h_server != server) continue; - { - if (hp != nlm_hosts + hash) { - *hp = host->h_next; - host->h_next = nlm_hosts[hash]; - nlm_hosts[hash] = host; - } - nlm_get_host(host); - mutex_unlock(&nlm_host_mutex); - return host; + if (hp != nlm_hosts + hash) { + *hp = host->h_next; + host->h_next = nlm_hosts[hash]; + nlm_hosts[hash] = host; } + nlm_get_host(host); + goto out; } /* Sadly, the host isn't in our hash table yet. See if |