Union mounts update

Union mounts trundles along. The good news is that I got a code review from Al Viro. The bad news is that I have to implement all his comments. :)

This release implements two major changes, which make union mounts much simpler and cleaner. First, we drastically simplify the union stack for a directory. It is now a singly linked list rooted in the dentry of the topmost directory, instead of a set of path -> path mappings kept in a hash table. The union hash table lookup routines have gone away, along with most of struct union_dir. Second, on union mount, we clone the underlying read-only mounts and keep them in a list hanging off the superblock of the topmost file system. This lets us move the union mount around as a single unit.

Next up is a rewrite of user_path_nd() and the code surrounding it that copies up files during chmod()/etc.

As usual, the location of the git repositories and other info is at my union mounts page. You can see the LKML thread here.

2 thoughts on “Union mounts update”

  1. You, absolotely, rock! Keep up the good work. Union mount is a very desired feature for some distros and users, I’m happy to know the thing is a bit closer to acceptance in mainline Linux.

  2. Hey

    Cool that you’re working on union mounts.

    I have a small nebengeschäft where I run a hosting center, we’ve written administrative interfaces such that creating a virtual machine complete with it’s own VLAN, firewall rules, filesystem, daily backups etc. is a click of a button, the process itself taking 2-3 seconds.

    Each virtual machine runs a union filesystem using unionfs, such that the operating system and software in it are run off of a common filesystem, thus limiting the initial on-disk size of each VM to 5 KiB.

    There are customers running happily on it, but I’m not developing the business, and it’s been sitting idle for a little over 5 years now, basically because I don’t trust the current unionfs we’re using (the only semi-stable one I could find readily available for a common distribution). Named pipes seem to randomly stop working every few months, and regular files sometimes disappear out of view of the unioned filesystem. Reboots and removing named pipes takes care of this, but it’s not ready for prime time.

    ANYWAY long story short, even though I’m not actively pursuing this stuff myself any more, I’m extremely glad to see that someone is taking a look at getting this critical piece of infrastructure working. Good work and good luck.

Comments are closed.