head	1.39;
access;
symbols
	UNIONFS-1_4:1.39
	LKML-branch:1.39.0.2
	LKML:1.39
	UNIONFS-1_3-branch:1.37.0.6
	UNIONFS-1_3:1.37
	UNIONFS-1_2:1.37
	UNIONFS-1_2-branch:1.37.0.4
	UNIONFS-1_2-branchpoint:1.37
	UNIONFS_branchman:1.37
	branchman:1.37.0.2
	UNIONFS-1_1_4:1.33
	UNIONFS-1_1-patches:1.33.0.2
	UNIONFS-1_1_3:1.33
	crc-submitted-to-ols2006:1.35
	remount:1.34.0.2
	UNIONFS-1_1_2:1.31
	BEFORE_MOUNTPOINT_CROSSING:1.28
	UNIONFS-1_1_1:1.28
	UNIONFS_PRE_1_1_1:1.27
	UNIONFS-1_1:1.27
	UNIONFS_PRE_1_1:1.26.0.2
	UNIONFS-1_0_14:1.26
	UNIONFS_PRE_DENTRY_LOCKING:1.25
	UNIONFS-1_0_13:1.20
	submitted-to-tos-2005:1.19
	UNIONFS-1_0_12:1.16
	UNIONFS-1_0_11:1.9
	UNIONFS-1_0_10:1.9
	UNIONFS-1_0_9:1.4;
locks; strict;
comment	@# @;


1.39
date	2006.07.13.18.20.28;	author ezk;	state Exp;
branches
	1.39.2.1;
next	1.38;

1.38
date	2006.07.13.02.42.12;	author jro;	state Exp;
branches;
next	1.37;

1.37
date	2006.06.01.03.11.02;	author jsipek;	state Exp;
branches;
next	1.36;

1.36
date	2006.04.15.02.59.50;	author jsipek;	state Exp;
branches;
next	1.35;

1.35
date	2006.03.22.05.38.21;	author jsipek;	state Exp;
branches;
next	1.34;

1.34
date	2006.03.07.09.03.40;	author dquigley;	state Exp;
branches;
next	1.33;

1.33
date	2006.02.20.22.40.03;	author cwright;	state Exp;
branches;
next	1.32;

1.32
date	2006.02.07.23.23.49;	author dquigley;	state Exp;
branches;
next	1.31;

1.31
date	2006.01.21.02.58.11;	author jsipek;	state Exp;
branches;
next	1.30;

1.30
date	2006.01.14.01.23.12;	author jsipek;	state Exp;
branches;
next	1.29;

1.29
date	2005.11.18.16.10.43;	author cwright;	state Exp;
branches;
next	1.28;

1.28
date	2005.10.19.17.43.16;	author cwright;	state Exp;
branches;
next	1.27;

1.27
date	2005.09.27.16.40.06;	author cwright;	state Exp;
branches;
next	1.26;

1.26
date	2005.08.29.17.51.58;	author cwright;	state Exp;
branches;
next	1.25;

1.25
date	2005.08.25.13.42.28;	author cwright;	state Exp;
branches;
next	1.24;

1.24
date	2005.08.22.14.46.40;	author cwright;	state Exp;
branches;
next	1.23;

1.23
date	2005.08.20.04.06.03;	author cwright;	state Exp;
branches;
next	1.22;

1.22
date	2005.08.09.17.12.03;	author cwright;	state Exp;
branches;
next	1.21;

1.21
date	2005.07.25.15.43.04;	author cwright;	state Exp;
branches;
next	1.20;

1.20
date	2005.07.20.13.02.52;	author cwright;	state Exp;
branches;
next	1.19;

1.19
date	2005.06.17.15.08.33;	author cwright;	state Exp;
branches;
next	1.18;

1.18
date	2005.06.15.13.03.12;	author cwright;	state Exp;
branches;
next	1.17;

1.17
date	2005.05.14.19.42.32;	author cwright;	state Exp;
branches;
next	1.16;

1.16
date	2005.05.13.19.30.26;	author cwright;	state Exp;
branches;
next	1.15;

1.15
date	2005.05.10.15.13.36;	author cwright;	state Exp;
branches;
next	1.14;

1.14
date	2005.05.10.12.57.29;	author cwright;	state Exp;
branches;
next	1.13;

1.13
date	2005.05.08.14.14.33;	author cwright;	state Exp;
branches;
next	1.12;

1.12
date	2005.05.08.12.58.04;	author cwright;	state Exp;
branches;
next	1.11;

1.11
date	2005.04.18.13.16.42;	author cwright;	state Exp;
branches;
next	1.10;

1.10
date	2005.04.12.00.50.47;	author dquigley;	state Exp;
branches;
next	1.9;

1.9
date	2005.03.24.03.26.46;	author dquigley;	state Exp;
branches;
next	1.8;

1.8
date	2005.03.21.15.32.34;	author cwright;	state Exp;
branches;
next	1.7;

1.7
date	2005.03.08.14.42.31;	author cwright;	state Exp;
branches;
next	1.6;

1.6
date	2005.02.24.18.44.14;	author cwright;	state Exp;
branches;
next	1.5;

1.5
date	2005.02.17.16.55.52;	author cwright;	state Exp;
branches;
next	1.4;

1.4
date	2005.02.07.19.40.52;	author cwright;	state Exp;
branches;
next	1.3;

1.3
date	2005.01.19.15.04.05;	author cwright;	state Exp;
branches;
next	1.2;

1.2
date	2005.01.14.15.12.08;	author cwright;	state Exp;
branches;
next	1.1;

1.1
date	2005.01.13.14.33.54;	author cwright;	state Exp;
branches;
next	;

1.39.2.1
date	2006.08.02.21.23.09;	author jsipek;	state dead;
branches;
next	;


desc
@@


1.39
log
@* INSTALL (UNIONFS_IMAP): rephrase.
@
text
@To build Unionfs, there are two main components:

-  unionfs.ko: the kernel module in 2.6

-  unionctl: a user utility which allows you to add and remove branches

You should be able to just type "make" and Unionfs will build itself for the
running kernel.  The Makefile will look for your running kernel sources in
/lib/modules/`uname -r`/build/include.

If your kernel sources are located in a different directory, create a
"fistdev.mk" file along the lines of:
LINUXSRC=/path/to/my/kernel/sources/linux-2.6.xx
TOPINC=-I$(LINUXSRC)/include
MODDIR=/lib/modules/2.6.xx

LINUXSRC points to the root of a Linux source tree.  TOPINC should point to
that tree's include directory.  Finally, the module will be copied to
$MODDIR/kernel/fs/unionfs.ko.

You must set all three variables together, otherwise you can have problems
compiling, installing, or loading the module.

You also need to have the headers for e2fsprogs installed, on Red Hat
derived systems (like Fedora Core), this means that you need to have
e2fsprogs-devel installed.

There are two Makefile options related to extended attribute support,
which is turned off by default.  You should define UNIONFS_XATTR to turn
it on.  Vanilla kernels should work automatically, but if you (or your
vendor) has applied the ACL/EA patches you might need to define
FIST_SETXATTR_CONSTVOID to correct the setxattr operation's function
prototype.

Using fistdev.mk, you can also turn on the debugging print system,
which adds to the modules code size significantly.  Just add
"EXTRACFLAGS=-DUNIONFS_DEBUG" to fistdev.mk.

The doit.sh script included in the distribution will mount unionfs
with two branches (/branch0 and /branch1) by default.  You can use it
as an example and edit to your tastes.

To install unionfs run "make install".  This copies unionfs.ko into
/lib/modules/`uname -r`/kernel/fs/unionfs; copies the utilities into
/usr/local/sbin; and copies man pages into /usr/local/man;

fistdev.mk summary:
UNIONFS_OPT_CFLAG	By default -O2.  If you want a different optimization
			level change this variable.
UNIONFS_DEBUG_CFLAG	By default -g.  If you want to remove debug, set
			this variable to nothing.  This will result in a
			smaller (but harder to debug) Unionfs.
EXTRACFLAGS		Additional stuff to pass to the compiler, this
			is useful when combined with the definitions below.
			(e.g., EXTRACFLAGS=-DUNIONFS_DEBUG to turn on
			debugging).
LINUXSRC		Where to find the kernel build directory.
TOPINC			Where to find the kernel headers.
PREFIX			Where to install Unionfs utilities.
			By default /usr/local.
MODPREFIX		What is the prefix to the root directory for modules,
			by default this is unset.  Your modules will end up
			in /lib/modules/`uname -r`/kernel/fs.  With
			MODPREFIX=/foo they end up in
			/foo/lib/modules/`uname -r`/kernel/fs.
UNIONFS_IMAP		Compiles in persistent inode code.  Mounting will
			fail if you try to use the imap option without this
			compile option.  The imap option is important if you
			export your unionfs mount via NFS, because NFS
			(v2/v3 at least) expects inode numbers to be
			persistent, whereas Unionfs by default uses dynamic
			inode numbers which may change silently.  Without
			this imap option, NFS clients may see many "stale
			file handle" errors, among others.
Define options summary:
UNIONFS_DEBUG		Turn on debugging facility (increases code size).
UNIONFS_UNSUPPORTED	Bypass kernel versions checks.
SUPPORT_BROKEN_SETUP	Enable sendfile, which allows you to run losetup, but
			if you try to write to a loop file, you will cause
			an Oops.
UNIONFS_DELETE_ALL	Enable delete=all mode.
UNIONFS_MMAP		Enable mmap support in unionfs still experimental.

Known interactions with other kernel features/patches:
* If you get an error like this on Fedora Core 4:
  make: *** /lib/modules/2.6.11-1.1369_FC4/build: No such file or directory.  Stop.
  Then you need to install the kernel-devel package.

* If you get an error like this:
  unionimap.h:9:23: uuid/uuid.h: No such file or directory
  Followed, by more parse errors,  then you need to make sure you have
  e2fsprogs-devel installed (or your distribution's equivalent).

* Some NFS servers return -EACCES instead of -EROFS when they are exported
  read-only.  This means that we can't legitimately determine when a user is
  not allowed to access a file.  To enable a hack so that NFS appears to work
  correctly (but NFS ACLs will break), mount the nfs-branch with mode nfsro.

* If you want to export Unionfs over NFS, then you need to add
  extra information to /etc/exports.  knfsd will not export Unionfs unless
  you have an fsid option in /etc/exports.  This is because Unionfs has no
  real device.  See man exports(5) for more information on fsid.

* If you want to use Unionfs as your root file system you need to use
  pivot_root.  www.linux-live.org provides scripts for creating live CDs with
  Unionfs as the root.  The following commands are adapted from the linuxrc
  from linux-live 5.0.16.  You may want to look at the original script from
  www.linux-live.org if you are having problems.  SLAX (www.slax.org) is a
  an actual live CD distribution based on these scripts.

  UNION=/union
  MEMORY=/memory
  MOUNTDIR=/mnt
  CHANGES=$MEMORY/changes

  mkdir -p $UNION
  mkdir -p $MEMORY
  mount -t tmpfs tmpfs $MEMORY

  mkdir -p $CHANGES
  mount -t unionfs -o dirs=$CHANGES=rw unionfs $UNION

  # Here other things can be added to the Union, by using unionctl.

  # Finally set union as root
  cd $UNION
  mkdir -p initrd
  pivot_root . initrd
  exec chroot . sbin/init <dev/console >dev/console 2>&1
  # You should never get here

* If you want to use losetup, then you need to define -DSUPPORT_BROKEN_LOSETUP
  You will be able to use it read-only, but when you try to use it read-write,
  you will get an Oops.  This should eventually be fixed when we have our
  own address-space operations (so that we can support sendfile).

* Selinux requires extended attributes (but has not been tested by us).
  You should compile Unionfs with Extended Attribute support by adding
  EXTRACFLAGS=-DUNIONFS_XATTR to fistdev.mk.  After this, you can follow
  the following instructions are from Jaspreet Singh:

  1. Install strict/targetted selinux policy sources
  2. Open /etc/selinux/<policy_type>/src/policy/fs_use
  3. Append "fs_use_xattr unionfs system_u:object_r:fs_t;"
  4. Compile, install, and reload the selinux policy

  "There were a couple of issues with Unionfs but they were minor."

* tmpfs does not support fsyncing directories, so if you have a Union with
  tmpfs as the leftmost branch, fsync returns EINVAL.

Other known limitations:
* Unionfs does not provide cache coherency.  What this means to you is that
  if you directly modify the lower-level branches, then Unionfs will get
  confused.  You can tell Unionfs to throw out its cache and recreate all
  of its objects (lazily), by running "uniondbg -g UNION".

  It is especially dangerous to create or remove whiteouts from underneath
  Unionfs, as there are several places where it asserts on invariants
  that must be true (e.g., if the file exists, the whiteout should not and
  vice versa).

* Unionfs doesn't support sendfile.  This often manifests itself as apache
  serving zero length files.  You can turn off sendfile n Apache with the
  EnableSendfile httpd.conf directive (see
  http://httpd.apache.org/docs/2.0/mod/core.html).   This is also the reason
  that losetup is unsupported, Unionfs needs its own address space operations
  otherwise upper and lower-level files and pages get mixed and matched.

* If you restart an NFS server, you will get ESTALE errors on the client
  because Unionfs does not have persistent inode numbers.  You should also
  consider NFS over TCP, so lost packets don't cause readdir to get confused.

* Renaming a directory on a read-only branch returns an EXDEV error.  The "mv"
  utility is designed to handle this error (at least GNU coreutils and busybox
  will handle this correctly), so a user will not see anything.  The only
  issue will be applications that internally rename a directory, but do not
  properly handle EXDEV (which is really a bug on the application's part).

* The documentation needs to improve

Integrating Unionfs into a 2.6 kernel source tree (2.4 is not supported):
1. First run patch-kernel.sh included with Unionfs. Its first argument is the
   path to your kernel source tree.
2. Configure and compile your kernel as you normally would.   Unionfs is at the
   bottom of the the File systems -> Miscellaenous filesystems menu.
3. To install the Unionfs utilities (i.e., unionctl and uniondbg), run
   "make utils install-utils" from the Unionfs source directory.
4. Boot into your new kernel, and enjoy Unionfs.
@


1.39.2.1
log
@* AUTHORS, BUGS, COPYING, INSTALL, Makefile, Lindent, Makefile.kernel,
NEWS, README, announce-email.txt, commit, doit.sh, patch-kernel.sh,
undoit.sh: (lkml branch) Removed some unneeded files - trying to make
it compile as a part of the kernel tree..
@
text
@@


1.38
log
@add a note about nfs to UNIONFS_IMAP
@
text
@d66 9
a74 5
UNIONFS_IMAP		Compiles in persistent inode code. Mount should fail
			if you try to use the imap option without this.
			If you export your unionfs via NFS, you will need imap
			option since NFS will not work correctly after inode
			number(s) are changed silently.
@


1.37
log
@* INSTALL, Makefile.kernel, commonfops.c, copyup.c, dentry.c,
dirfops.c, file.c, inode.c, lookup.c, main.c, print.c, rdstate.c,
rename.c, subr.c, super.c, unionfs.h, unionfs_debug.h,
unionfs_macros.h, unlink.c, xattr.c: Simplified & cleaned up debugging
support
@
text
@d68 3
@


1.36
log
@* BUGS, man/unionfs.4: Added warning of dire consequences (Bug #256)

* README: Mention latest 2.6 kernel only
@
text
@d35 1
a35 1
Using fistdev.mk, you can also turn off the debugging print system,
d37 1
a37 1
"EXTRACFLAGS=-DUNIONFS_NDEBUG" to fistdev.mk.
d55 1
a55 1
			(e.g., EXTRACFLAGS=-DUNIONFS_NDEBUG to turn off
d69 1
a69 1
UNIONFS_NDEBUG		Turn off debugging facility (reduces code size).
a173 3

* The object code is much larger than it could be, but this can be solved by
  enabling UNIONFS_NDEBUG and setting UNIONFS_DEBUG_CFLAG to the empty string.
@


1.35
log
@* INSTALL: Little updates and corrections
@
text
@d152 1
a152 1
  Unionfs, as there are several places where it ASSERTs on invariants
@


1.34
log
@* file.c (__unionfs_read, __unionfs_write): code that was removed
by Shaya's patch which we fall back on if the person chooses not to
compile with UNIONFS_MMAP
* copyup.c, file.c, inode.c, main.c, super.c: Ifdefed around Shaya's
code and extracted some code to support not using UNIONFS_MMAP
* Makefile: added mmap.c
* INSTALL: added comment for UNIONFS_MMAP
* Note this code hasn't been fully tested yet and is considered highly
experimental.


* copyup.c, file.c, inode.c, main.c, super.c: Implemented true mmap
@
text
@d43 2
a44 2
To install unionfs run "make install".  This copies unionfs.o into
/lib/modules/`uname -r`/kernel/fs/; copies the utilities into
a109 1

d116 1
a116 1
  # Here other things are added to the Union, by using unionctl.
d118 1
d122 1
a122 1
  exec chroot . /bin/bash
@


1.33
log
@* Makefile: Increment version number.
* INSTALL, NEWS: Add new define options.
@
text
@d75 1
@


1.32
log
@* INSTALL: Added fistdev.mk description for UNIONFS_IMAP.
@
text
@d74 1
@


1.31
log
@* BUGS, INSTALL, man/unionctl.8, man/unionfs.4: Documentation update

* branchman.c (unionfs_ioctl_addbranch, unionfs_ioctl_rdwrbranch):
Per branch nfsro option

* inode.c (inode_permission): Per branch nfsro option

* main.c (parse_dirs_option, unionfs_parse_options): Per branch nfsro
option

* super.c (unionfs_show_options): Per branch nfsro option

* unionctl.c (__usage, parse_rw, parse_options, dump_branches, main):
Per branch nfsro option

* unionfs.h: Per branch nfsro option
@
text
@d66 2
a67 1

@


1.30
log
@* BUGS, INSTALL: Removed all references to NFS_SECURITY_HOLE
@
text
@d84 1
a84 1
* Some NFS servers return -EPERM instead of -EROFS when they are exported
d87 1
a87 1
  correctly (but NFS ACLs will break), mount the union with nfsperms=insecure.
@


1.29
log
@* Remove UNIONFS_XATTR define, because 2.6 has consistent prototypes.
@
text
@d3 1
a3 2
-  unionfs.o: the kernel module in 2.4
or unionfs.ko: the kernel module in 2.6
d13 1
a13 1
LINUXSRC=/path/to/my/kernel/sources/linux-2.4.xx
d15 1
a15 1
MODDIR=/lib/modules/2.4.xx
a72 5
NFS_SECURITY_HOLE	If the NFS server returns -EACCES, then assume that
			standard permission checks are good enough.  This
			allows you to use read-only exports (which return
			-EACCES instead of -EROFS), and will respect standard
			Unix permissions, but causes NFS ACLs to be ignored.
d87 1
a87 1
  correctly (but NFS ACLs will break), compile unionfs with -DNFS_SECURITY_HOLE.
@


1.28
log
@* inode.c (inode_permission): If NFS_SECURITY_HOLE is defined
treat -EACCESS as if we should fall back on inode_permission.
@
text
@a68 3
UNIONFS_XATTR		Enable extended attribute support
FIST_SETXATTR_CONSTVOID	Change prototypes of setxattr function for some
			vendor kernels
@


1.27
log
@* INSTALL: Document MODDIR.
@
text
@d77 5
d92 5
@


1.26
log
@* INSTALL: tmpfs doesn't support fsync on directories
@
text
@d8 16
a23 5
You should be able to just type "make" and Unionfs will build itself.
The Makefile will look for your running kernel sources in
/lib/modules/`uname -r`/build/include.  If your kernel sources are
located in a different directory, create a "fistdev.mk" file along the
lines of: TOPINC=-I/path/to/my/kernel/sources/linux-2.4.xx/include
@


1.25
log
@* INSTALL: Fix losetup instructions.
@
text
@d127 3
d166 2
a167 2
2. Configure and compile your kernel as you normally would.   Unionfs is
   under the main File systems menu.
@


1.24
log
@* unionfs_debugmacros.h: Fix stray printks.
@
text
@d63 3
d110 1
a110 1
* If you want to use losetup, then you need to define -DSETUP_BROKEN_LOSETUP=1.
@


1.23
log
@* INSTALL: sendfile conflicts w/ Unionfs.
@
text
@d110 1
a110 1
  own address-space operations.
d135 1
a135 1
* Sendfile doesn't work with Unionfs.  This often manifests itself as apache
d138 3
a140 1
  http://httpd.apache.org/docs/2.0/mod/core.html).
@


1.22
log
@* Some AMD64 fixes.
* vprintk wrapper for 2.4.
@
text
@d135 5
@


1.21
log
@* Makefile: Update version number to 1.0.14pre.
@
text
@d3 1
a3 1
-  unionfs.o: the kernel module in 2.4 
d69 1
a69 1
* If you get an error like this: 
d90 1
a90 1
  
d98 1
a98 1
  
d100 1
a100 1
  
d155 1
a155 1
3. To install the Unionfs utilities (i.e., unionctl and uniondbg), run 
@


1.20
log
@2005-07-20  Charles P. Wright <cwright@@fsl.cs.sunysb.edu>

	* Fix things so that we compile on 2.4 again, and use the
	older form of ioctl for kernels less than 2.6.11.

	* ChangeLog: 80 character entries.
@
text
@d45 2
a46 1
			(e.g., EXTRACFLAGS=-DUNIONFS_NDEBUG to turn off debugging).
d147 2
a148 1
* The object code is much larger than it could be
@


1.19
log
@* INSTALL: If you have Fedora Core 4, then you need kernel-devel.
@
text
@d14 4
d67 5
@


1.18
log
@* fist.h,print.c,unionfs.h: Change NODEBUG to UNIONFS_NDEBUG to be
more inline with the rest of the kernel.
* print.c: Wrap in UNIONFS_NDEBUG, so there is no need for a separate
flag to not compile it.
@
text
@d60 4
@


1.17
log
@* inode.c(unionfs_follow_link): Return 0 not the number of bytes
in follow_link.

* Reduce Unionfs module size when NODEBUG is set by not compiling
print.c, and using a different set of macros that don't require
__FILE__, __FUNCTION__, and __LINE__, and don't do as much checking
because we've aleady turned ASSERT off.

* Support for inline objects, so that we don't need more
than one allocation for inodes and only two for dentries (the dentry
itself and its private data).

* Separate directory file operations from normal file operations.
@
text
@d23 1
a23 1
"EXTRACFLAGS=-DNODEBUG" to fistdev.mk.
d41 1
a41 1
			(e.g., EXTRACFLAGS=-DNODEBUG to turn off debugging).
d56 1
a56 3
NODEBUG			Turn off debugging facility (reduces code size),
			you also need to set the make variable DEBUG=0 so
			that print.c won't be compiled.
@


1.16
log
@* file.c: Disable generic_file_sendfile, because it causes nfsd
to Oops.
@
text
@d56 3
a58 1
NODEBUG			Turn off debugging facility (reduces code size)
@


1.15
log
@Minor tweaks to the INSTALL file.
@
text
@d93 5
@


1.14
log
@* INSTALL: Add root file system instructions based on Linux
Live's linuxrc.
@
text
@d66 5
a70 4
  pivot_root.  An example live CD that uses Unionfs as the root is at
  www.linux-live.org.  The following commands are adapted from the
  linuxrc from linux-live 5.0.16.  You may want to look at the original
  script from www.linux-live.org if you are having problems.
d85 1
a85 1
  # Here other things are added to the Union.
@


1.13
log
@* INSTALL: Add Jaspreet Singh's selinux instructions.
@
text
@d61 30
a90 3
extra information to /etc/exports.  knfsd will not export Unionfs unless
you have an fsid option in /etc/exports.  This is because Unionfs has no
real device.  See man exports(5) for more information on fsid.
@


1.12
log
@* INSTALL: Add EXDEV on ro branch rename as a limitation.
@
text
@a59 6
* File locking routines are not implemented correctly

* Selinux requires extended attributes (but has not been tested)

* Stacking on Reiserfs can cause problems

d65 9
a73 2
Other known limitations:
* The documentation needs to improve
d75 1
a75 1
* Extended attributes are not handled on copyup
d77 10
a86 1
* The object code is much larger than it could be
d97 4
@


1.11
log
@* file.c: Delay copyup of read-write files located on read-only
branches, until an operation will actually write to them (BUG 225).

* INSTALL: Cleanup kernel instructions a bit.
@
text
@d82 6
@


1.10
log
@* patch-kernel.sh : Script written to move unionfs into the kernel
source tree. The original script was submitted by Sven Geggus however
the script was cleaned up and modified for various reasons. Check the
file for more details.
* Makefile: PHONY added to the utils target to aid in building them
for the kernel.
* INSTALL: Directions added for building unionfs into a monolithic kernel.
@
text
@a0 4
***********************************************************************
* Note: Exporting Unionfs over NFS does not work in this release.     *
***********************************************************************

d82 8
a89 16
Integrating Unionfs into a kernel source tree:
* NOTE this will only work for a 2.6 kernel source tree.

* A file called patch-kernel.sh is included to allow you to compile
  unionfs into a monolithic kernel.

* The suggested set of steps for doing this is as follows.
  1. run patch-kernel.sh (path to source tree)
  2. configure and compile your kernel as you normally would. 
  	 Note: Unionfs is under the main file systems menu so there
	 is no hunting required.
  3. from the original unionfs directory make utils.
  4. su to root and then run make install-utils.
  
  At this point the only thing you need to do is boot into your new kernel
  and unionfs is fully accessable to you. 
@


1.9
log
@* INSTALL: removed the warning about NFS exports
* Makefile: Increases release number.
* NEWS: Added release news for 1.0.11
* unionfs.h: added a function rdstate2offset
* file.c: redid llseek and readdir implementation
* rdstate: redid find_rdstate
@
text
@d85 17
@


1.8
log
@* Add big warnings that NFS exports won't work in 1.0.10.
@
text
@d7 2
a8 1
- unionfs.o: the kernel module
d10 1
a10 1
- unionctl: a user utility which allows you to add and remove branches
a75 4
* Export Unionfs over NFS does not work in this release, you must use 1.0.9
  with a 2.4 kernel for NFS export functionality to work properly.  1.0.11,
  will have an appropriate fix for 2.4 and 2.6.

d83 2
a84 1
  because Unionfs does not have persistent inode numbers.
@


1.7
log
@* file.c (unionfs_dir_lseek): Allow seek to beginning/end of dirs.
@
text
@d1 4
d75 4
d84 3
@


1.6
log
@* RPM spec file included in release.  Remove CVS directory from
debian directory in release.

* Add fsid= to interactions, with pointer to exports(5).
@
text
@d65 4
a68 3
* knfsd will not export Unionfs unless you have an fsid option in
/etc/exports.  This is because Unionfs has no real device.  See
man exports(5) for more information on fsid.
@


1.5
log
@* INSTALL: Squashfs is generally OK, but we do have flock problems.
@
text
@d65 4
@


1.4
log
@* Makefile: Allow module prefixes to be specified for
RPM_BUILD_ROOT
* rpm/unionfs.spec: Compiled, tested, and installed.
@
text
@d59 1
a59 1
* Stacking on Squashfs causes problems
@


1.3
log
@* INSTALL: Add more CFLAGS options to make things smaller.
@
text
@d45 5
d59 1
a59 1
* Unionfs causes bugs on preemptive kernels
d63 1
a63 13
* Linux vserver changes the definition of IS_IMMUTABLE, you need to do
  something like the following to fix unionfs/namei.c:
--- namei.c.org Thu Jan 13 03:18:06 2005
+++ namei.c     Thu Jan 13 03:38:17 2005
@@@@ -67,7 +67,7 @@@@
        if (IS_APPEND(dir))
                return -EPERM;
        if (check_sticky(dir, victim->d_inode)||IS_APPEND(victim->d_inode)||
-           IS_IMMUTABLE(victim->d_inode))
+           IS_IMMUTABLE_FILE(victim->d_inode)||IS_IMMUTABLE_LINK(victim->d_inode))
                return -EPERM;
        if (isdir) {
                if (!S_ISDIR(victim->d_inode->i_mode))
d65 2
a66 1
* Stacking on NTFS and Reiserfs can cause problems
a67 1
Other known limitations:
@


1.2
log
@* file.c (unionfs_dir_llseek): Allow llseek to the current
offset in the directory, but nowhere else.
* file.c (unionfs_readdir): Save the last offset, so we
can lseek to it (for pretend).
@
text
@d32 14
@


1.1
log
@* Split README into INSTALL as well.

* Makefile: Spit out a message saying to read install.

* Don't build xattr functions w/o -DUNIONFS_XATTR
@
text
@d37 1
@

