Commit a238b790d5f99c7832f9b73ac8847025815b85f7

Authored by Jonathan Corbet
1 parent 2db9f0a35a

Call fasync() functions without the BKL

lock_kernel() calls have been pushed down into code which needs it, so
there is no need to take the BKL at this level anymore.

This work inspired and aided by Andi Kleen's unlocked_fasync() patches.

Acked-by: Andi Kleen <ak@linux.intel.com>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>

Showing 1 changed file with 0 additions and 3 deletions Side-by-side Diff

... ... @@ -12,7 +12,6 @@
12 12 #include <linux/fdtable.h>
13 13 #include <linux/capability.h>
14 14 #include <linux/dnotify.h>
15   -#include <linux/smp_lock.h>
16 15 #include <linux/slab.h>
17 16 #include <linux/module.h>
18 17 #include <linux/security.h>
... ... @@ -227,7 +226,6 @@
227 226 if (error)
228 227 return error;
229 228  
230   - lock_kernel();
231 229 if ((arg ^ filp->f_flags) & FASYNC) {
232 230 if (filp->f_op && filp->f_op->fasync) {
233 231 error = filp->f_op->fasync(fd, filp, (arg & FASYNC) != 0);
... ... @@ -238,7 +236,6 @@
238 236  
239 237 filp->f_flags = (arg & SETFL_MASK) | (filp->f_flags & ~SETFL_MASK);
240 238 out:
241   - unlock_kernel();
242 239 return error;
243 240 }
244 241