NLM: Call nsm_reboot_lookup() instead of nsm_find()
authorChuck Lever <chuck.lever@oracle.com>
Sat, 6 Dec 2008 00:03:54 +0000 (19:03 -0500)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Tue, 6 Jan 2009 16:53:54 +0000 (11:53 -0500)
Invoke the newly introduced nsm_reboot_lookup() function in
nlm_host_rebooted() instead of nsm_find().

This introduces just one behavioral change: debugging messages
produced during reboot notification will now appear when the
NLMDBG_MONITOR flag is set, but not when the NLMDBG_HOSTCACHE flag
is set.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu>
fs/lockd/host.c

index dc41e46ef74ccaa066047403069159150e0bdd69..230de93fc0487432983f56d06fb5e3e9cf128e3d 100644 (file)
@@ -453,30 +453,14 @@ void nlm_release_host(struct nlm_host *host)
  */
 void nlm_host_rebooted(const struct nlm_reboot *info)
 {
-       __be32 *p = (__be32 *)&info->priv.data;
-       const struct sockaddr_in sin = {
-               .sin_family             = AF_INET,
-               .sin_addr.s_addr        = *p,
-       };
        struct hlist_head *chain;
        struct hlist_node *pos;
        struct nsm_handle *nsm;
        struct nlm_host *host;
 
-       nsm = nsm_find((struct sockaddr *)&sin, sizeof(sin),
-                       info->mon, info->len, 0);
-       if (nsm == NULL) {
-               dprintk("lockd: never saw rebooted peer '%.*s' before\n",
-                               info->len, info->mon);
+       nsm = nsm_reboot_lookup(info);
+       if (unlikely(nsm == NULL))
                return;
-       }
-
-       dprintk("lockd: nlm_host_rebooted(%.*s, %s)\n",
-                       info->len, info->mon, nsm->sm_addrbuf);
-
-       /* When reclaiming locks on this peer, make sure that
-        * we set up a new notification */
-       nsm->sm_monitored = 0;
 
        /* Mark all hosts tied to this NSM state as having rebooted.
         * We run the loop repeatedly, because we drop the host table