unionfs is a stackable filesystem which merges different directories.
Version: 1.0.11Unionfs is a stackable unification file system which can appear to merge the contents of several directories (branches), while keeping their physical content separate. It is useful for unified source tree management, merging the contents of a split CD-ROM, merging separate software package directories, data grids, and more.
Operating System: Linux
Unionfs allows any mix of read-only and read-write branches, as well as insertion and deletion of branches anywhere in the fan-out.
To maintain Unix semantics, Unionfs handles elimination of duplicates, partial-error conditions, and more.
- unionfs.o: the kernel module
- 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. 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
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
Using fistdev.mk, you can also turn off the debugging print system, which adds to the modules code size significantly. Just add "EXTRACFLAGS=-DNODEBUG" 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.o into /lib/modules/`uname -r`/kernel/fs/; copies the utilities into /usr/local/sbin; and copies man pages into /usr/local/man;
What's New in This Release:
· rdstate.c (find_rdstate): Factor out rdstate search.
· file.c (unionfs_dir_llseek): Use rdstate if it exists.