fcntl(F_RDAHEAD)

Igor Sysoev is at rambler-co.ru
Tue Sep 22 07:28:50 UTC 2009


On Mon, Sep 21, 2009 at 02:29:09PM +0300, Kostik Belousov wrote:

> On Mon, Sep 21, 2009 at 03:12:45PM +0400, Igor Sysoev wrote:

> > > What I dislike about the patch is the new kernel-private flag that is
> > > eaten from the open(2) flags namespace. We do already have FHASLOCK,
> > > so far the only such flag.
> > 
> > We can change
> >   int    f_seqcount;
> > to
> >   u_int  f_seqcount;
> > 
> > and can use highest bit instead of O_READAHEAD: anyway f_seqcount is shifted
> > to 16 bits left.
> 
> Or do the same trick as was done for FHASLOCK and override some flag that
> is not saved after open, see FMASK.
> 
> Or split f_seqcount into two u_short fields, one for f_seqcount, second for
> f_kflag, and use the later for FHASLOCK and FREADAHEAD. [We are trying to
> not grow struct file unless absolutely neccessary].

I agree that struct file should not grow (at least in this case).
However, I believe splitting f_seqcount into two fields will break
kernel ABI. Or not ? I think f_seqcount should be splitted in 9-CURRENT
and probably, in 8-STABLE, but in 7-STABLE we may use the open(2) flags
namespace.


-- 
Igor Sysoev
http://sysoev.ru/en/


More information about the freebsd-hackers mailing list