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: J. Bruce Fields <bfields@citi.umich.edu>
This commit is contained in:
@@ -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,
|
|||||||
}
|
}
|
||||||
|
|
||||||
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,
|
|||||||
}
|
}
|
||||||
|
|
||||||
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,
|
|||||||
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);
|
||||||
|
Reference in New Issue
Block a user