]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/nfsd/nfsctl.c
Merge commit 'linus/master' into bkl/core
[karo-tx-linux.git] / fs / nfsd / nfsctl.c
index 9e8645a07fcaca396a6a4f30c00cbd71a3963433..b53b1d042f1ff3190b6696876da88cf355277b5a 100644 (file)
@@ -949,15 +949,8 @@ static ssize_t __write_ports_addfd(char *buf)
        if (err != 0)
                return err;
 
-       err = lockd_up();
-       if (err != 0) {
-               svc_destroy(nfsd_serv);
-               return err;
-       }
-
        err = svc_addsock(nfsd_serv, fd, buf, SIMPLE_TRANSACTION_LIMIT);
        if (err < 0) {
-               lockd_down();
                svc_destroy(nfsd_serv);
                return err;
        }
@@ -982,9 +975,6 @@ static ssize_t __write_ports_delfd(char *buf)
        if (nfsd_serv != NULL)
                len = svc_sock_names(nfsd_serv, buf,
                                        SIMPLE_TRANSACTION_LIMIT, toclose);
-       if (len >= 0)
-               lockd_down();
-
        kfree(toclose);
        return len;
 }
@@ -1200,7 +1190,7 @@ static ssize_t write_maxblksize(struct file *file, char *buf, size_t size)
                        bsize = NFSSVC_MAXBLKSIZE;
                bsize &= ~(1024-1);
                mutex_lock(&nfsd_mutex);
-               if (nfsd_serv && nfsd_serv->sv_nrthreads) {
+               if (nfsd_serv) {
                        mutex_unlock(&nfsd_mutex);
                        return -EBUSY;
                }
@@ -1316,6 +1306,8 @@ static ssize_t __write_recoverydir(struct file *file, char *buf, size_t size)
                        return -EINVAL;
 
                status = nfs4_reset_recoverydir(recdir);
+               if (status)
+                       return status;
        }
 
        return scnprintf(buf, SIMPLE_TRANSACTION_LIMIT, "%s\n",