Messages in this thread | | | Date | Thu, 22 Jan 2009 17:09:35 +0100 | From | Andi Kleen <> | Subject | Re: [PATCH, RFC] Remove fasync() BKL usage, take 3325 |
| |
> 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
| |