Commit a95e56e7 authored by J. Bruce Fields's avatar J. Bruce Fields

lockd: clean up __nsm_find()

Use list_for_each_entry().  Also, in keeping with kernel style, make the
normal case (kzalloc succeeds) unindented and handle the abnormal case
with a goto.
Signed-off-by: default avatarJ. Bruce Fields <bfields@citi.umich.edu>
parent 164f98ad
...@@ -465,7 +465,7 @@ __nsm_find(const struct sockaddr_in *sin, ...@@ -465,7 +465,7 @@ __nsm_find(const struct sockaddr_in *sin,
int create) int create)
{ {
struct nsm_handle *nsm = NULL; struct nsm_handle *nsm = NULL;
struct list_head *pos; struct nsm_handle *pos;
if (!sin) if (!sin)
return NULL; return NULL;
...@@ -480,16 +480,16 @@ __nsm_find(const struct sockaddr_in *sin, ...@@ -480,16 +480,16 @@ __nsm_find(const struct sockaddr_in *sin,
} }
mutex_lock(&nsm_mutex); mutex_lock(&nsm_mutex);
list_for_each(pos, &nsm_handles) { list_for_each_entry(pos, &nsm_handles, sm_link) {
nsm = list_entry(pos, struct nsm_handle, sm_link);
if (hostname && nsm_use_hostnames) { if (hostname && nsm_use_hostnames) {
if (strlen(nsm->sm_name) != hostname_len if (strlen(pos->sm_name) != hostname_len
|| memcmp(nsm->sm_name, hostname, hostname_len)) || memcmp(pos->sm_name, hostname, hostname_len))
continue; continue;
} else if (!nlm_cmp_addr(&nsm->sm_addr, sin)) } else if (!nlm_cmp_addr(&pos->sm_addr, sin))
continue; continue;
atomic_inc(&nsm->sm_count); atomic_inc(&pos->sm_count);
nsm = pos;
goto out; goto out;
} }
...@@ -499,7 +499,8 @@ __nsm_find(const struct sockaddr_in *sin, ...@@ -499,7 +499,8 @@ __nsm_find(const struct sockaddr_in *sin,
} }
nsm = kzalloc(sizeof(*nsm) + hostname_len + 1, GFP_KERNEL); nsm = kzalloc(sizeof(*nsm) + hostname_len + 1, GFP_KERNEL);
if (nsm != NULL) { if (nsm == NULL)
goto out;
nsm->sm_addr = *sin; nsm->sm_addr = *sin;
nsm->sm_name = (char *) (nsm + 1); nsm->sm_name = (char *) (nsm + 1);
memcpy(nsm->sm_name, hostname, hostname_len); memcpy(nsm->sm_name, hostname, hostname_len);
...@@ -507,7 +508,6 @@ __nsm_find(const struct sockaddr_in *sin, ...@@ -507,7 +508,6 @@ __nsm_find(const struct sockaddr_in *sin,
atomic_set(&nsm->sm_count, 1); atomic_set(&nsm->sm_count, 1);
list_add(&nsm->sm_link, &nsm_handles); list_add(&nsm->sm_link, &nsm_handles);
}
out: out:
mutex_unlock(&nsm_mutex); mutex_unlock(&nsm_mutex);
......
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