summaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfssvc.c
diff options
context:
space:
mode:
authorSteven Rostedt <rostedt@goodmis.org>2005-08-17 20:25:23 +0200
committerLinus Torvalds <torvalds@g5.osdl.org>2005-08-17 21:53:05 +0200
commitc4f92dba97f4e3aa757500896f87001569f4604b (patch)
tree3af7efe2b1ae357ee151c1795dc60cfe801e8718 /fs/nfsd/nfssvc.c
parent[PATCH] NPTL signal delivery deadlock fix (diff)
downloadlinux-c4f92dba97f4e3aa757500896f87001569f4604b.tar.xz
linux-c4f92dba97f4e3aa757500896f87001569f4604b.zip
[PATCH] nfsd to unlock kernel before exiting
The nfsd holds the big kernel lock upon exit, when it really shouldn't. Not to mention that this breaks Ingo's RT patch. This is a trivial fix to release the lock. Ingo, this patch also works with your kernel, and stops the problem with nfsd. Note, there's a "goto out;" where "out:" is right above svc_exit_thread. The point of the goto also holds the kernel_lock, so I don't see any problem here in releasing it. Signed-off-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/nfsd/nfssvc.c')
-rw-r--r--fs/nfsd/nfssvc.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfsd/nfssvc.c b/fs/nfsd/nfssvc.c
index 07b9a065e9da..1697539a7171 100644
--- a/fs/nfsd/nfssvc.c
+++ b/fs/nfsd/nfssvc.c
@@ -287,6 +287,7 @@ out:
svc_exit_thread(rqstp);
/* Release module */
+ unlock_kernel();
module_put_and_exit(0);
}