nfsd4: remove unnecessary lease-setting function
[safe/jmp/linux-2.6] / fs / nfsd / nfsctl.c
index 2604c3e..6738e9d 100644 (file)
@@ -988,6 +988,7 @@ static ssize_t __write_ports_delfd(char *buf)
 static ssize_t __write_ports_addxprt(char *buf)
 {
        char transport[16];
+       struct svc_xprt *xprt;
        int port, err;
 
        if (sscanf(buf, "%15s %4u", transport, &port) != 2)
@@ -1002,13 +1003,24 @@ static ssize_t __write_ports_addxprt(char *buf)
 
        err = svc_create_xprt(nfsd_serv, transport,
                                PF_INET, port, SVC_SOCK_ANONYMOUS);
-       if (err < 0) {
-               /* Give a reasonable perror msg for bad transport string */
-               if (err == -ENOENT)
-                       err = -EPROTONOSUPPORT;
-               return err;
-       }
+       if (err < 0)
+               goto out_err;
+
+       err = svc_create_xprt(nfsd_serv, transport,
+                               PF_INET6, port, SVC_SOCK_ANONYMOUS);
+       if (err < 0 && err != -EAFNOSUPPORT)
+               goto out_close;
        return 0;
+out_close:
+       xprt = svc_find_xprt(nfsd_serv, transport, PF_INET, port);
+       if (xprt != NULL) {
+               svc_close_xprt(xprt);
+               svc_xprt_put(xprt);
+       }
+out_err:
+       /* Decrease the count, but don't shut down the service */
+       nfsd_serv->sv_nrthreads--;
+       return err;
 }
 
 /*
@@ -1191,8 +1203,6 @@ static ssize_t write_maxblksize(struct file *file, char *buf, size_t size)
 }
 
 #ifdef CONFIG_NFSD_V4
-extern time_t nfs4_leasetime(void);
-
 static ssize_t __write_leasetime(struct file *file, char *buf, size_t size)
 {
        /* if size > 10 seconds, call
@@ -1209,11 +1219,10 @@ static ssize_t __write_leasetime(struct file *file, char *buf, size_t size)
                        return rv;
                if (lease < 10 || lease > 3600)
                        return -EINVAL;
-               nfs4_reset_lease(lease);
+               nfsd4_lease = lease;
        }
 
-       return scnprintf(buf, SIMPLE_TRANSACTION_LIMIT, "%ld\n",
-                                                       nfs4_lease_time());
+       return scnprintf(buf, SIMPLE_TRANSACTION_LIMIT, "%ld\n", nfsd4_lease);
 }
 
 /**