[lkml]   [2008]   [Jun]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH, RFC] fasync() BKL pushdown
On Fri, 20 Jun 2008 11:29:14 -0600
Jonathan Corbet <> wrote:
> The majority of fasync() functions just call fasync_helper() with a
> pointer to an fasync_struct reachable from the file structure. Given
> that (1) the struct file will not go away while fasync() is running,
> and (2) the VFS-level fasync() stuff is protected with the Big Fasync
> Lock, I contend that these simple implementations have no need for
> the BKL. Once those are filtered out, there's really only a
> half-dozen places which need to be fixed.

> Jonathan Corbet (7):
> mpt: fasync BKL pushdown
> i2o: fasync BKL pushdown
> tun: fasync BKL pushdown
> tty_io: fasync BKL pushdown
> Bluetooth VHCI: fasync BKL pushdown
> ecryptfs: fasync BKL pushdown
> Call fasync() functions without the BKL
> And the actual patch is appended. If nobody objects, I'll pull these
> into the bkl-removal tree shortly.

looks good to me

only question is if this one is really needed:
+ lock_kernel();
tty = (struct tty_struct *)filp->private_data;
if (tty_paranoia_check(tty, filp->f_path.dentry->d_inode,
- return 0;
+ goto out;

retval = fasync_helper(fd, filp, on, &tty->fasync);
if (retval <= 0)

(given that it just calls the helper.. mostly and that Alan has been
busy removing the BKL from the tty layer)

If you want to reach me at my work email, use
For development, discussion and tips for power savings,

 \ /
  Last update: 2008-06-20 23:01    [W:0.063 / U:0.636 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site