NLM: Remove address eye-catcher buffers from nlm_host
authorChuck Lever <chuck.lever@oracle.com>
Thu, 4 Dec 2008 19:19:53 +0000 (14:19 -0500)
committerJ. Bruce Fields <bfields@citi.umich.edu>
Tue, 6 Jan 2009 16:53:49 +0000 (11:53 -0500)
The h_name field in struct nlm_host is a just copy of
h_nsmhandle->sm_name.  Likewise, the contents of the h_addrbuf field
should be identical to the sm_addrbuf field.

The h_srcaddrbuf field is used only in one place for debugging.  We can
live without this until we get %pI formatting for printk().

Currently these buffers are 48 bytes, but we need to support scope IDs
in IPv6 presentation addresses, which means making the buffers even
larger.  Instead, let's find ways to eliminate them to save space.

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

index abdebf76b8203c12a6a12532e12f498b83a90614..33bf67af7aba46b5b517a50896734272cfa077dc 100644 (file)
@@ -206,6 +206,7 @@ static struct nlm_host *nlm_lookup_host(struct nlm_lookup_host_info *ni)
                goto out;
        }
        host->h_name       = nsm->sm_name;
+       host->h_addrbuf    = nsm->sm_addrbuf;
        memcpy(nlm_addr(host), ni->sap, ni->salen);
        host->h_addrlen = ni->salen;
        nlm_clear_port(nlm_addr(host));
@@ -232,11 +233,6 @@ static struct nlm_host *nlm_lookup_host(struct nlm_lookup_host_info *ni)
 
        nrhosts++;
 
-       nlm_display_address((struct sockaddr *)&host->h_addr,
-                               host->h_addrbuf, sizeof(host->h_addrbuf));
-       nlm_display_address((struct sockaddr *)&host->h_srcaddr,
-                               host->h_srcaddrbuf, sizeof(host->h_srcaddrbuf));
-
        dprintk("lockd: nlm_lookup_host created host %s\n",
                        host->h_name);
 
@@ -378,8 +374,8 @@ nlm_bind_host(struct nlm_host *host)
 {
        struct rpc_clnt *clnt;
 
-       dprintk("lockd: nlm_bind_host %s (%s), my addr=%s\n",
-                       host->h_name, host->h_addrbuf, host->h_srcaddrbuf);
+       dprintk("lockd: nlm_bind_host %s (%s)\n",
+                       host->h_name, host->h_addrbuf);
 
        /* Lock host handle */
        mutex_lock(&host->h_mutex);
index 3dbdd353156c3b209b455febec49fb1cd100d0eb..dae22cb4c38d020f87ef37e8915461961afb8e07 100644 (file)
@@ -65,9 +65,7 @@ struct nlm_host {
        struct list_head        h_granted;      /* Locks in GRANTED state */
        struct list_head        h_reclaim;      /* Locks in RECLAIM state */
        struct nsm_handle       *h_nsmhandle;   /* NSM status handle */
-
-       char                    h_addrbuf[48],  /* address eyecatchers */
-                               h_srcaddrbuf[48];
+       char                    *h_addrbuf;     /* address eyecatcher */
 };
 
 struct nsm_handle {