]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
NFS: tidy up nfs_show_mountd_netid
authorNeilBrown <neilb@suse.com>
Fri, 13 Jan 2017 00:04:27 +0000 (11:04 +1100)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Mon, 30 Jan 2017 18:14:50 +0000 (13:14 -0500)
This function is a bit clumsy, incorrectly producing
",mountproto=" if mountd_protocol is 0 and !showdefaults,
and duplicating the code for reporting "auto".

Tidy it up so that it only makes a single seq_printf() call,
and more obviously does the right thing.

Fixes: ee671b016fbf ("NFS: convert proto= option to use netids rather than a protoname")
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/super.c

index 6bca17883b9368865253103b2df3f26320430d2d..54e0f9f2dd94903d2d6d96de46287ebc31fe1b6e 100644 (file)
@@ -531,39 +531,32 @@ static void nfs_show_mountd_netid(struct seq_file *m, struct nfs_server *nfss,
                                  int showdefaults)
 {
        struct sockaddr *sap = (struct sockaddr *) &nfss->mountd_address;
+       char *proto = NULL;
 
-       seq_printf(m, ",mountproto=");
        switch (sap->sa_family) {
        case AF_INET:
                switch (nfss->mountd_protocol) {
                case IPPROTO_UDP:
-                       seq_printf(m, RPCBIND_NETID_UDP);
+                       proto = RPCBIND_NETID_UDP;
                        break;
                case IPPROTO_TCP:
-                       seq_printf(m, RPCBIND_NETID_TCP);
+                       proto = RPCBIND_NETID_TCP;
                        break;
-               default:
-                       if (showdefaults)
-                               seq_printf(m, "auto");
                }
                break;
        case AF_INET6:
                switch (nfss->mountd_protocol) {
                case IPPROTO_UDP:
-                       seq_printf(m, RPCBIND_NETID_UDP6);
+                       proto = RPCBIND_NETID_UDP6;
                        break;
                case IPPROTO_TCP:
-                       seq_printf(m, RPCBIND_NETID_TCP6);
+                       proto = RPCBIND_NETID_TCP6;
                        break;
-               default:
-                       if (showdefaults)
-                               seq_printf(m, "auto");
                }
                break;
-       default:
-               if (showdefaults)
-                       seq_printf(m, "auto");
        }
+       if (proto || showdefaults)
+               seq_printf(m, ",mountproto=%s", proto ?: "auto");
 }
 
 static void nfs_show_mountd_options(struct seq_file *m, struct nfs_server *nfss,