]> git.hungrycats.org Git - linux/commitdiff
[PATCH] PATCH 7/16: NFSD: BKL removal: Discard high level BKL locking
authorNeil Brown <neilb@cse.unsw.edu.au>
Tue, 26 Feb 2002 06:23:16 +0000 (22:23 -0800)
committerLinus Torvalds <torvalds@penguin.transmeta.com>
Tue, 26 Feb 2002 06:23:16 +0000 (22:23 -0800)
Remove last unneeded bit of BKL from knfsd

Remove BKL from nfsservctl systemcall.  All
components have their own locking.
Also remove it from the body of nfsd threads.  Keep
it for final thread destruction though.

fs/nfsd/nfsctl.c
fs/nfsd/nfssvc.c

index 77b1cbcc92556783bb3ce00e6109e7a8e0744c49..5b7d2fef5e92db99b227ed4e9bd5ca58d7459360 100644 (file)
@@ -187,7 +187,6 @@ asmlinkage handle_sys_nfsservctl(int cmd, void *opaque_argp, void *opaque_resp)
        int                     err;
        int                     argsize, respsize;
 
-       lock_kernel ();
 
        err = -EPERM;
        if (!capable(CAP_SYS_ADMIN)) {
@@ -257,7 +256,6 @@ done:
        if (res)
                kfree(res);
 
-       unlock_kernel ();
        return err;
 }
 
index 92758ebb969704d9116d1bedf3512704012dc088..38553d55f902e3f24c10e287afe9b7f9f24f39ad 100644 (file)
@@ -179,6 +179,7 @@ nfsd(struct svc_rqst *rqstp)
        me.task = current;
        list_add(&me.list, &nfsd_list);
 
+       unlock_kernel();
        /*
         * The main request loop
         */
@@ -234,6 +235,8 @@ nfsd(struct svc_rqst *rqstp)
                err = signo;
        }
 
+       lock_kernel();
+
        /* Release lockd */
        lockd_down();