I'd like to propose this for 3.16. Changes in v22: - Whiteout is now a special char device instead of a symlink, this breaks compatibility with previous versions. See attached conversion script (takes upperdir as argument). - Uses cross-rename to make operations atomic: copy-up, unlink, rename, etc... - Added "workdir=" mount option. Work directory is used to prepare files before atomically swithing with destination and needs to be on the same filesystem as upperdir. Git tree is here: git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git overlayfs.current Thanks, Miklos --- Andy Whitcroft (1): overlayfs: add statfs support Erez Zadok (1): overlayfs: implement show_options Miklos Szeredi (9): vfs: add i_op->dentry_open() vfs: export do_splice_direct() to modules vfs: export __inode_permission() to modules vfs: introduce clone_private_mount() vfs: export check_sticky() vfs: add whiteout support vfs: add RENAME_WHITEOUT overlay filesystem fs: limit filesystem stacking depth Neil Brown (1): overlay: overlay filesystem documentation Sedat Dilek (1): vfs: dcache: Export d_ancestor to modules --- Documentation/filesystems/Locking | 2 + Documentation/filesystems/overlayfs.txt | 198 +++++++ Documentation/filesystems/vfs.txt | 7 + MAINTAINERS | 7 + fs/Kconfig | 1 + fs/Makefile | 1 + fs/btrfs/ioctl.c | 20 +- fs/dcache.c | 1 + fs/ecryptfs/main.c | 7 + fs/ext4/namei.c | 99 +++- fs/internal.h | 7 - fs/namei.c | 41 +- fs/namespace.c | 27 + fs/open.c | 23 +- fs/overlayfs/Kconfig | 10 + fs/overlayfs/Makefile | 7 + fs/overlayfs/copy_up.c | 427 +++++++++++++++ fs/overlayfs/dir.c | 886 ++++++++++++++++++++++++++++++++ fs/overlayfs/inode.c | 372 ++++++++++++++ fs/overlayfs/overlayfs.h | 185 +++++++ fs/overlayfs/readdir.c | 518 +++++++++++++++++++ fs/overlayfs/super.c | 776 ++++++++++++++++++++++++++++ fs/splice.c | 1 + include/linux/fs.h | 44 ++ include/linux/mount.h | 3 + include/uapi/linux/fs.h | 1 + 26 files changed, 3613 insertions(+), 58 deletions(-) create mode 100644 Documentation/filesystems/overlayfs.txt create mode 100644 fs/overlayfs/Kconfig create mode 100644 fs/overlayfs/Makefile create mode 100644 fs/overlayfs/copy_up.c create mode 100644 fs/overlayfs/dir.c create mode 100644 fs/overlayfs/inode.c create mode 100644 fs/overlayfs/overlayfs.h create mode 100644 fs/overlayfs/readdir.c create mode 100644 fs/overlayfs/super.c --- overlayfs-fixup.sh --- #! /bin/bash upper=$1 tmpdir=`mktemp -d` tmp=$tmpdir/wh find "$upper" -type l -print0 | while IFS= read -r -d $'\0' name; do iswh=`getfattr -h -ntrusted.overlay.whiteout --only-values "$name" 2> /dev/null` if test "$iswh" = y; then echo "changing whiteout <$name> from symlink to chardev" mknod -m0 $tmp c 0 0 mv -f $tmp "$name" fi done rmdir $tmpdir -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html