# -*- text -*-

		       LINUX PATCHES TO SUPPORT FIST

To support stackable file systems in Linux, at least for now, you have to
apply one of the patches in this directory.  *NO* patches are needed to
support stacking in Solaris, FreeBSD, or Linux 2.4.

To apply these Linux patches into an existing source tree, use something
like:

$ cd /usr/src/linux
$ patch -p1 < fist-X.Y.Z.diff

where X.Y.Z is your kernel version, or the closest one to it.  Then
[re]build your kernel as usual.

Note that we do not include patches for many of the linux-2.3 kernels.  The
reason is that these are alpha development kernels, and are by definition
unstable and changing.  So including patches for 2.3 kernels doesn't make
sense.  They change too much too often.  You must therefore keep up with the
latest linux 2.3 kernel.

Many people have asked me if I submitted these patches for inclusion with
the mainline kernel.  Yes I have, many times.  Most of my patches got
already included in the linux kernel, at various points in the 2.3
development tree.  But still, a few remain, and these patches here represent
what's left.  If you think my patches are useful for your work, then please
ask the linux maintainers to include them soon.  Thanks.


* WHAT DO THE 2.2 PATCHES DO?

The patches are passive!  They are intended to make the Linux kernel more
"stacking-friendly" so that my stacking templates can call VFS code directly
rather than reproducing it.

- moved some static inline functions from .c files to .h files where they
  can be called by our code.
- we split some static inline functions from namei.c to their own header
  <linux/dcache_func.h> because I needed to call those directly, and there
  was no better place to put them.
- make default_llseek a non-static function so it can be called from other
  stackable file systems.
- Added an extern declaration to default_llseek and other filemap functions
  in fs.h.
- exporting symbols for loadable modules in kernel/ksyms.c


Erez Zadok.
