nfsd: pass net to __write_ports() and down
authorStanislav Kinsbursky <skinsbursky@parallels.com>
Mon, 10 Dec 2012 09:19:35 +0000 (12:19 +0300)
committerJ. Bruce Fields <bfields@redhat.com>
Mon, 10 Dec 2012 21:25:36 +0000 (16:25 -0500)
Precursor patch. Hard-coded "init_net" will be replaced by proper one in
future.

Signed-off-by: Stanislav Kinsbursky <skinsbursky@parallels.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
fs/nfsd/nfsctl.c

index 58f0ae44779d8a39b9770ce370167f068fca2667..8536100b7fc12a8b9fc9832bd92a30338422d0f0 100644 (file)
@@ -657,11 +657,10 @@ static ssize_t __write_ports_names(char *buf)
  * a socket of a supported family/protocol, and we use it as an
  * nfsd listener.
  */
-static ssize_t __write_ports_addfd(char *buf)
+static ssize_t __write_ports_addfd(char *buf, struct net *net)
 {
        char *mesg = buf;
        int fd, err;
-       struct net *net = &init_net;
 
        err = get_int(&mesg, &fd);
        if (err != 0 || fd < 0)
@@ -686,12 +685,11 @@ static ssize_t __write_ports_addfd(char *buf)
  * A transport listener is added by writing it's transport name and
  * a port number.
  */
-static ssize_t __write_ports_addxprt(char *buf)
+static ssize_t __write_ports_addxprt(char *buf, struct net *net)
 {
        char transport[16];
        struct svc_xprt *xprt;
        int port, err;
-       struct net *net = &init_net;
 
        if (sscanf(buf, "%15s %5u", transport, &port) != 2)
                return -EINVAL;
@@ -727,16 +725,17 @@ out_err:
        return err;
 }
 
-static ssize_t __write_ports(struct file *file, char *buf, size_t size)
+static ssize_t __write_ports(struct file *file, char *buf, size_t size,
+                            struct net *net)
 {
        if (size == 0)
                return __write_ports_names(buf);
 
        if (isdigit(buf[0]))
-               return __write_ports_addfd(buf);
+               return __write_ports_addfd(buf, net);
 
        if (isalpha(buf[0]))
-               return __write_ports_addxprt(buf);
+               return __write_ports_addxprt(buf, net);
 
        return -EINVAL;
 }
@@ -787,9 +786,10 @@ static ssize_t __write_ports(struct file *file, char *buf, size_t size)
 static ssize_t write_ports(struct file *file, char *buf, size_t size)
 {
        ssize_t rv;
+       struct net *net = &init_net;
 
        mutex_lock(&nfsd_mutex);
-       rv = __write_ports(file, buf, size);
+       rv = __write_ports(file, buf, size, net);
        mutex_unlock(&nfsd_mutex);
        return rv;
 }