Re: [PATCH, RFC] Remove fasync() BKL usage, take 3325

From: Andi Kleen
Date: Thu Jan 22 2009 - 10:54:27 EST


> OK, replacing a lock_kernel() with a spin_lock(&global_lock) is pretty
> straightforwad. But it's really really sad. It basically leaves a great
> big FIXME in there. It'd be better to fix it.

Also it might be that it's even worse than the BKL.

>
> We don't have a handy lock in struct file which could be borrowed.
>
> - We could add one
>
> - We could borrow file->f_path.dentry->d_inode->i_lock
>
> - We could convert that field to long and use bitops (sounds nice?)

It would still require a bitlock because some state in the low
level fasync needs to be protected.

Oleg has a proposal to do this using a flag bit which seemed
reasonable to me.

-Andi

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/