nlm_get_host(host);
                goto out;
        }
-       if (nsm)
-               atomic_inc(&nsm->sm_count);
-
-       host = NULL;
 
-       /* Sadly, the host isn't in our hash table yet. See if
-        * we have an NSM handle for it. If not, create one.
+       /*
+        * The host wasn't in our hash table.  If we don't
+        * have an NSM handle for it yet, create one.
         */
-       if (!nsm && !(nsm = nsm_find(sin, hostname, hostname_len)))
-               goto out;
+       if (nsm)
+               atomic_inc(&nsm->sm_count);
+       else {
+               host = NULL;
+               nsm = nsm_find(sin, hostname, hostname_len);
+               if (!nsm)
+                       goto out;
+       }
 
        host = kzalloc(sizeof(*host), GFP_KERNEL);
        if (!host) {