Subject: Re: fcntl changes once again.
To: Jason Thorpe <thorpej@nas.nasa.gov>
From: Charles M. Hannum <root@ihack.net>
List: tech-kern
Date: 07/13/1999 15:37:51
So, an example you gave of the usage of ALT_IO is to bypass the
decompression in a compressing FS layer.  E.g., if you're using
layered FSes to do something like:

FFS --> GZIP-FS --> user
     B		 A

normally you would read and write decompressed data at point A, but
setting ALT_IO might allow you to read and write the *compressed* data
at point B.  For the sake of discussion, I will call this feature
`bypassing the layer'.

Presumably an encrypting FS could do the same thing.

Now, consider stacking both of these together, as in:

FFS --> 3DES-FS --> GZIP-FS --> user
     C           B           A

Again, if I do nothing, I would read and write uncompressed,
unencrypted data at point A, and everything would be happy.

But what if I want to read and write unencrypted. compressed data at
point B (bypassing the compression layer), or encrypted, compressed
data at point C (bypassing both layers)?  ALT_IO is not generic enough
to do this; it permits me to bypass one or all layers -- whichever
behaviour is hard-coded into the kernel -- but not selectively bypass
one or both as I see the need to.

If this feature is not safe to use with multiple layers, then I don't
see how it can properly be called a feature at all.

Furthermore, using a single flag to do radically different things in
different stacked FSes seems inherently and seriously wrong.