login
Header Space

 
 

[PATCH 04/42] Unionfs: usage documentation for users

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: <hch@...>, <viro@...>, <akpm@...>
Cc: <linux-kernel@...>, <linux-fsdevel@...>, Erez Zadok <ezk@...>
Date: Sunday, December 9, 2007 - 10:41 pm

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
 Documentation/filesystems/unionfs/usage.txt |  115 +++++++++++++++++++++++++++
 1 files changed, 115 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/filesystems/unionfs/usage.txt

diff --git a/Documentation/filesystems/unionfs/usage.txt b/Documentation/filesystems/unionfs/usage.txt
new file mode 100644
index 0000000..a6b1aca
--- /dev/null
+++ b/Documentation/filesystems/unionfs/usage.txt
@@ -0,0 +1,115 @@
+Unionfs is a stackable unification file system, which can appear to merge
+the contents of several directories (branches), while keeping their physical
+content separate.  Unionfs is useful for unified source tree management,
+merged contents of split CD-ROM, merged separate software package
+directories, data grids, and more.  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.
+
+# mount -t unionfs -o branch-option[,union-options[,...]] none MOUNTPOINT
+
+The available branch-option for the mount command is:
+
+	dirs=branch[=ro|=rw][:...]
+
+specifies a separated list of which directories compose the union.
+Directories that come earlier in the list have a higher precedence than
+those which come later. Additionally, read-only or read-write permissions of
+the branch can be specified by appending =ro or =rw (default) to each
+directory.
+
+Syntax:
+
+	dirs=/branch1[=ro|=rw]:/branch2[=ro|=rw]:...:/branchN[=ro|=rw]
+
+Example:
+
+	dirs=/writable_branch=rw:/read-only_branch=ro
+
+
+DYNAMIC BRANCH MANAGEMENT AND REMOUNTS
+======================================
+
+You can remount a union and change its overall mode, or reconfigure the
+branches, as follows.
+
+To downgrade a union from read-write to read-only:
+
+# mount -t unionfs -o remount,ro none MOUNTPOINT
+
+To upgrade a union from read-only to read-write:
+
+# mount -t unionfs -o remount,rw none MOUNTPOINT
+
+To delete a branch /foo, regardless where it is in the current union:
+
+# mount -t unionfs -o remount,del=/foo none MOUNTPOINT
+
+To insert (add) a branch /foo before /bar:
+
+# mount -t unionfs -o remount,add=/bar:/foo none MOUNTPOINT
+
+To insert (add) a branch /foo (with the "rw" mode flag) before /bar:
+
+# mount -t unionfs -o remount,add=/bar:/foo=rw none MOUNTPOINT
+
+To insert (add) a branch /foo (in "rw" mode) at the very beginning (i.e., a
+new highest-priority branch), you can use the above syntax, or use a short
+hand version as follows:
+
+# mount -t unionfs -o remount,add=/foo none MOUNTPOINT
+
+To append a branch to the very end (new lowest-priority branch):
+
+# mount -t unionfs -o remount,add=:/foo none MOUNTPOINT
+
+To append a branch to the very end (new lowest-priority branch), in
+read-only mode:
+
+# mount -t unionfs -o remount,add=:/foo=ro none MOUNTPOINT
+
+Finally, to change the mode of one existing branch, say /foo, from read-only
+to read-write, and change /bar from read-write to read-only:
+
+# mount -t unionfs -o remount,mode=/foo=rw,mode=/bar=ro none MOUNTPOINT
+
+Note: in Unionfs 2.x, you cannot set the leftmost branch to readonly because
+then Unionfs won't have any writable place for copyups to take place.
+Moreover, the VFS can get confused when it tries to modify something in a
+file system mounted read-write, but isn't permitted to write to it.
+Instead, you should set the whole union as readonly, as described above.
+If, however, you must set the leftmost branch as readonly, perhaps so you
+can get a snapshot of it at a point in time, then you should insert a new
+writable top-level branch, and mark the one you want as readonly.  This can
+be accomplished as follows, assuming that /foo is your current leftmost
+branch:
+
+# mount -t tmpfs -o size=NNN /new
+# mount -t unionfs -o remount,add=/new,mode=/foo=ro none MOUNTPOINT
+<do what you want safely in /foo>
+# mount -t unionfs -o remount,del=/new,mode=/foo=rw none MOUNTPOINT
+<check if there's anything in /new you want to preserve>
+# umount /new
+
+CACHE CONSISTENCY
+=================
+
+If you modify any file on any of the lower branches directly, while there is
+a Unionfs 2.1 mounted above any of those branches, you should tell Unionfs
+to purge its caches and re-get the objects.  To do that, you have to
+increment the generation number of the superblock using the following
+command:
+
+# mount -t unionfs -o remount,incgen none MOUNTPOINT
+
+Note that the older way of incrementing the generation number using an
+ioctl, is no longer supported in Unionfs 2.0 and newer.  Ioctls in general
+are not encouraged.  Plus, an ioctl is per-file concept, whereas the
+generation number is a per-file-system concept.  Worse, such an ioctl
+requires an open file, which then has to be invalidated by the very nature
+of the generation number increase (read: the old generation increase ioctl
+was pretty racy).
+
+
+For more information, see <http://unionfs.filesystems.org/>.
-- 
1.5.2.2

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[UNIONFS] 00/42 Unionfs and related patches review, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 21/42] Unionfs: inode operations, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 30/42] Unionfs: debugging infrastructure, Erez Zadok, (Sun Dec 9, 10:42 pm)
[PATCH 20/42] Unionfs: readdir state helpers, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 13/42] Unionfs: basic file operations, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 36/42] VFS: export drop_pagecache_sb, Erez Zadok, (Sun Dec 9, 10:42 pm)
Re: [PATCH 36/42] VFS: export drop_pagecache_sb, Nick Piggin, (Wed Dec 12, 1:38 am)
Re: [PATCH 36/42] VFS: export drop_pagecache_sb , Erez Zadok, (Thu Dec 13, 11:24 am)
Re: [PATCH 36/42] VFS: export drop_pagecache_sb, Nick Piggin, (Thu Dec 13, 6:47 pm)
[PATCH 11/42] Unionfs: main header file, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 25/42] Unionfs: super_block operations, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 16/42] Unionfs: lower-level lookup routines, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 10/42] Unionfs: fanout header definitions, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 17/42] Unionfs: rename method and helpers, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 34/42] VFS path get/put ops used by Unionfs, Erez Zadok, (Sun Dec 9, 10:42 pm)
[PATCH 23/42] Unionfs: address-space operations, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 19/42] Unionfs: readdir helper functions, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 14/42] Unionfs: lower-level copyup routines, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 38/42] VFS: simplified fsstack_copy_attr_all, Erez Zadok, (Sun Dec 9, 10:42 pm)
[PATCH 32/42] Unionfs file system magic number, Erez Zadok, (Sun Dec 9, 10:42 pm)
[PATCH 37/42] VFS: export release_open_intent symbol, Erez Zadok, (Sun Dec 9, 10:42 pm)
[PATCH 33/42] MM: extern for drop_pagecache_sb, Erez Zadok, (Sun Dec 9, 10:42 pm)
Re: [PATCH 33/42] MM: extern for drop_pagecache_sb, Adrian Bunk, (Mon Dec 10, 10:04 am)
Re: [PATCH 33/42] MM: extern for drop_pagecache_sb , Erez Zadok, (Thu Dec 13, 11:05 am)
[PATCH 29/42] Unionfs: miscellaneous helper routines, Erez Zadok, (Sun Dec 9, 10:42 pm)
[PATCH 31/42] VFS: fs_stack header cleanups, Erez Zadok, (Sun Dec 9, 10:42 pm)
[PATCH 15/42] Unionfs: dentry revalidation, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 22/42] Unionfs: unlink/rmdir operations, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 28/42] Unionfs: async I/O queue operations, Erez Zadok, (Sun Dec 9, 10:42 pm)
[PATCH 27/42] Unionfs: async I/O queue headers, Erez Zadok, (Sun Dec 9, 10:42 pm)
[PATCH 09/42] Unionfs: main Makefile, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 08/42] Makefile: hook to compile unionfs, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 04/42] Unionfs: usage documentation for users, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 07/42] Unionfs maintainers, Erez Zadok, (Sun Dec 9, 10:41 pm)
[PATCH 02/42] Unionfs: unionfs documentation index, Erez Zadok, (Sun Dec 9, 10:41 pm)
Re: [PATCH 01/42] Unionfs: filesystems documentation index, Jan Engelhardt, (Mon Dec 10, 10:47 am)
speck-geostationary