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

From: Andi Kleen
Date: Thu Jan 29 2009 - 09:22:20 EST


On Wed, Jan 28, 2009 at 12:36:18PM -0500, Christoph Hellwig wrote:
> On Wed, Jan 28, 2009 at 04:14:39AM +0100, Oleg Nesterov wrote:
> > I didn't send the actual patch. The idea is,
> >
> > can't we use O_LOCK_FLAGS bit? I agree, it is a bit ugly,
> > and I won't insist if you don't like is.
> >
> > static inline int try_lock_f_flags(struct file *file)
> > {
> > return !test_and_set_bit(O_LOCK_FLAGS, file->f_flags);
> > }
>
> ->f_flags is an unsigned int and the bit macros need an unsigned long.
> Increasing the size of struct file for this is probably a bad idea.


I think very few architectures actually need the unsigned long.

For 2.4 I had a hack (when it did still matter for struct page)
to define a new type for this that denoted the minimal type size
needed here.

That could be reintroduced. Then only the few archs which really
require unsigned long here would pay the overhead.

-Andi

--
ak@xxxxxxxxxxxxxxx -- Speaking for myself only.
--
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/