Subject: Re: fcntl changes once again.
To: Charles M. Hannum <>
From: Bill Studenmund <>
List: tech-kern
Date: 07/13/1999 14:39:09
On Tue, 13 Jul 1999, Charles M. Hannum wrote:

> I'll toss out a different idea here to consider.  I suggest a new
> ioctl(2) called FIOVIOLATELAYERING (or FIOBYPASS, or whatever, if you
> prefer), which takes as an argument an integer, representing the
> number of layers to `bypass'.  It would default to 0 when the file
> descriptor is opened, of course, and setting it to some `maximum'
> number (and just for the sake of consistency, explicitly preventing
> file systems from being stacked higher than that) would `bypass' all
> layers.
> This would give the flexibility I want, and would be done through an
> ioctl(2) as well.

To also do what we want, this count would have to be stored in struct
file, so it really doesn't matter if it's set by an fcntl or ioctl - it
has to be done high-enough in the chain that struct file's still around.
I'd prefer fcntl (normal one) as we're messing with struct file.

Also, we'd have to change VOP_READ & VOP_WRITE to take this count as an
extra argument, with each level decrimenting the count as you go down. Or
we have to shove the count into a bit field in flags (which would work
too). Hmm. The latter (bits in field) would not make our interface
diverge from everyone else's.

Take care,