Re: [PATCH 00/74] Union mounts version something or other

From: Sedat Dilek
Date: Wed Mar 23 2011 - 04:38:53 EST

On Wed, Mar 23, 2011 at 2:58 AM, Valerie Aurora
<valerie.aurora@xxxxxxxxx> wrote:
> Hi union mounts fans(?),
> Here's my current union mounts patch set, against 2.6.36-rc5. ÂI'm
> busy with other things[1] and unlikely to put in significant work on
> union mounts in the next year. ÂI'm happy to answer questions from
> anyone else working on them.
> As always, git trees for the kernel, util-linux, and e2fsprogs, lots
> of documentation, and LWN articles describing the various problems
> unioning file systems will encounter are here:
> The devkit linked to from that page includes my Usermode Linux testing
> environment, including root file system image. ÂThe README tells you
> how to run the test suite automatically (yes, an automated test suite
> - with Makefile and version control and comments and stuff!).
> I took a quick look at the current overlayfs patch set, and it's
> small, clean, and easy to understand. ÂIf it does what people need, I
> say ship it.
> Thanks to everyone who reviewed and submitted patches for union mounts!
> -VAL
> [1]
> ---
> Felix Fietkau (2):
> Âwhiteout: jffs2 whiteout support
> Âfallthru: jffs2 fallthru support
> Jan Blunck (9):
> ÂVFS: Make lookup_hash() return a struct path
> Âautofs4: Save autofs trigger's vfsmount in super block info
> Âwhiteout/NFSD: Don't return information about whiteouts to userspace
> Âwhiteout: Add vfs_whiteout() and whiteout inode operation
> Âwhiteout: Allow removal of a directory with whiteouts
> Âwhiteout: tmpfs whiteout support
> Âunion-mount: Introduce MNT_UNION and MS_UNION flags
> Âunion-mount: Free union stack on removal of topmost dentry from
> Â Âdcache
> Âunion-mount: Create IS_MNT_UNION()
> Valerie Aurora (63):
> ÂVFS: Comment follow_mount() and friends
> ÂDocumentation: Fix trivial typo in filesystems/sharedsubtree.txt
> Âwhiteout: Define opaque inode flags and operations
> Âext2: Add ext2_dirent_in_use()
> Âext2: Split ext2_add_entry() from ext2_add_link()
> Âwhiteout: ext2 whiteout support
> Âfallthru: Basic fallthru definitions
> Âfallthru: ext2 fallthru support
> Âfallthru: tmpfs fallthru support
> ÂVFS: Add hard read-only users count to superblock
> ÂVFS: Make clone_mnt()/copy_tree()/collect_mounts() return errors
> ÂVFS: Add CL_NO_SHARED flag to clone_mnt()/copy_tree()
> ÂVFS: Add CL_NO_SLAVE flag to clone_mnt()/copy_tree()
> ÂVFS: Add CL_MAKE_HARD_READONLY flag to clone_mnt()/copy_tree()
> Âunion-mount: Union mounts documentation
> Âunion-mount: Add CONFIG_UNION_MOUNT option
> Âunion-mount: Create union_stack structure
> Âunion-mount: Add two superblock fields for union mounts
> Âunion-mount: Add union_alloc()
> Âunion-mount: Add union_find_dir()
> Âunion-mount: Create d_free_unions()
> Âunion-mount: Create union_add_dir()
> Âunion-mount: Add union_create_topmost_dir()
> Âunion-mount: Create needs_lookup_union()
> Âunion-mount: Create check_topmost_union_mnt()
> Âunion-mount: Add clone_union_tree() and put_union_sb()
> Âunion-mount: Create build_root_union()
> Âunion-mount: Create prepare_mnt_union() and cleanup_mnt_union()
> Âunion-mount: Prevent improper union-related remounts
> Âunion-mount: Prevent topmost file system from being mounted elsewhere
> Âunion-mount: Prevent bind mounts of union mounts
> Âunion-mount: Implement union mount
> Âunion-mount: Temporarily disable some syscalls
> Âunion-mount: Basic infrastructure of __lookup_union()
> Âunion-mount: Process negative dentries in __lookup_union()
> Âunion-mount: Return files found in lower layers in __lookup_union()
> Âunion-mount: Build union stack in __lookup_union()
> Âunion-mount: Follow mount in __lookup_union()
> Âunion-mount: Add lookup_union()
> Âunion-mount: Add do_lookup_union() wrapper for __lookup_union()
> Âunion-mount: Call union lookup functions in lookup path
> Âunion-mount: Create whiteout on unlink()
> Âunion-mount: Create whiteout on rmdir()
> Âunion-mount: Set opaque flag on new directories in unioned file
> Â Âsystems
> Âunion-mount: Copy up directory entries on first readdir()
> Âunion-mount: Add generic_readdir_fallthru() helper
> Âfallthru: ext2 support for lookup of d_type/d_ino in fallthrus
> Âfallthru: tmpfs support for lookup of d_type/d_ino in fallthrus
> Âfallthru: jffs2 support for lookup of d_type/d_ino in fallthrus
> ÂVFS: Split inode_permission() and create path_permission()
> ÂVFS: Create user_path_nd() to lookup both parent and target
> Âunion-mount: In-kernel file copyup routines
> Âunion-mount: Implement union-aware access()/faccessat()
> Âunion-mount: Implement union-aware link()
> Âunion-mount: Implement union-aware rename()
> Âunion-mount: Implement union-aware writable open()
> Âunion-mount: Implement union-aware chown()
> Âunion-mount: Implement union-aware truncate()
> Âunion-mount: Implement union-aware chmod()/fchmodat()
> Âunion-mount: Implement union-aware lchown()
> Âunion-mount: Implement union-aware utimensat()
> Âunion-mount: Implement union-aware setxattr()
> Âunion-mount: Implement union-aware lsetxattr()

Shall I cry or laugh? I really don't know...

With your email I remembered my first steps with Linux Live-CD technologies.
As a home-project I created an own sidux live-cd and enlightenment as
window-manager to get a bit familiar with the technolgies/tools behind
Still the mostly used and most effective "technology" in this area is
AUFS in combination with SquashFS compression (see for example Debian
/ GRML / ex-sidux Live-CD frameworks).

But I also remember these "famous words" [1]:

"Note: it becomes clear that "Aufs was rejected. Let's give it up."
According to Christoph Hellwig, linux rejects all union-type filesystems
but UnionMount."

Please hold the line... Please hold the line... Please hold the line???

Whuzzz up with AUFS?
Even there where massive changes to VFS and FS in 2.6.38+, there is an
adapted kernel patch around (for example see Debian's 2.6.38 linux-2.6
packages in experimental branch).

>From my POV OverlayFS is the new star at the skyline and should be
promoted as 1st choice, now.
I am definitely PRO for including it in 2.6.39!
And when looking to the code-size, OverlayFS is small while you send
70+ single patches.

Union-mounts never got out of "technology preview" status and was
stepmotherly promoted in the past.
You are leaving an outdated (unfinished?) code (IIRC I read 2.6.36-rc5
as code-base) and furthermore u-m needs hacked user-space, too.
So, u-m is for me - seen from today and having OverlayFS as an
alternative - a dead horse.
But, BKL-removal showed us... a once started job can be finished :-).

( Sorry, for the rough words. )

I do not want to end this email with some lights at the end of the
tunnel and want to quote Felix [2]:

> But I'd want Al's ack on the series. And also hear who uses it and how
> it's been tested?
We're using it in OpenWrt (an Embedded Linux distribution) for devices
with tiny amounts of flash for the entire system (e.g. 4 MB).
We're using it to provide a writable on-flash root filesystem with
squashfs for the read-only part and jffs2 for the writable overlay. This
saves some precious flash space compared to using only jffs2, and it
makes it easy for users to reset their device to defaults without having
to reflash.
With a backport of v6 of this series + my fixes that went into v7 this
is working quite well on 2.6.37 and 2.6.38 - I'm using it on a few
wireless access points at home.

OverlayFS GO GO GO!

- Sedat -

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at