lockd: clean up __nsm_find()
J. Bruce Fields [Wed, 20 Feb 2008 20:27:31 +0000 (15:27 -0500)]
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>

fs/lockd/host.c

index 960911c..de0ffb6 100644 (file)
@@ -465,7 +465,7 @@ __nsm_find(const struct sockaddr_in *sin,
                int create)
 {
        struct nsm_handle *nsm = NULL;
-       struct list_head *pos;
+       struct nsm_handle *pos;
 
        if (!sin)
                return NULL;
@@ -480,16 +480,16 @@ __nsm_find(const struct sockaddr_in *sin,
        }
 
        mutex_lock(&nsm_mutex);
-       list_for_each(pos, &nsm_handles) {
-               nsm = list_entry(pos, struct nsm_handle, sm_link);
+       list_for_each_entry(pos, &nsm_handles, sm_link) {
 
                if (hostname && nsm_use_hostnames) {
-                       if (strlen(nsm->sm_name) != hostname_len
-                        || memcmp(nsm->sm_name, hostname, hostname_len))
+                       if (strlen(pos->sm_name) != hostname_len
+                        || memcmp(pos->sm_name, hostname, hostname_len))
                                continue;
-               } else if (!nlm_cmp_addr(&nsm->sm_addr, sin))
+               } else if (!nlm_cmp_addr(&pos->sm_addr, sin))
                        continue;
-               atomic_inc(&nsm->sm_count);
+               atomic_inc(&pos->sm_count);
+               nsm = pos;
                goto out;
        }
 
@@ -499,15 +499,15 @@ __nsm_find(const struct sockaddr_in *sin,
        }
 
        nsm = kzalloc(sizeof(*nsm) + hostname_len + 1, GFP_KERNEL);
-       if (nsm != NULL) {
-               nsm->sm_addr = *sin;
-               nsm->sm_name = (char *) (nsm + 1);
-               memcpy(nsm->sm_name, hostname, hostname_len);
-               nsm->sm_name[hostname_len] = '\0';
-               atomic_set(&nsm->sm_count, 1);
-
-               list_add(&nsm->sm_link, &nsm_handles);
-       }
+       if (nsm == NULL)
+               goto out;
+       nsm->sm_addr = *sin;
+       nsm->sm_name = (char *) (nsm + 1);
+       memcpy(nsm->sm_name, hostname, hostname_len);
+       nsm->sm_name[hostname_len] = '\0';
+       atomic_set(&nsm->sm_count, 1);
+
+       list_add(&nsm->sm_link, &nsm_handles);
 
 out:
        mutex_unlock(&nsm_mutex);