[PATCH 00/35] Union mounts - everything but the xattrs

From: Valerie Aurora
Date: Thu Apr 15 2010 - 19:05:11 EST


This patch series implements union mounts for every system call
except:

- xattr-related calls
- fchmod()/fchown()/futimensat() on an fd

The copyup portion is a proof of concept based around union_path_nd(),
which looks up both the target <mnt,dentry> pair and its parent's. If
the parent is on a union mount, and the target is on a lower layer, we
copy up the target.

This patch set is very raw and could use even the most superficial
review. Just take a look at Erez's review from December to see how
low-hanging the fruit is on this one.

-VAL

Felix Fietkau (2):
whiteout: jffs2 whiteout support
fallthru: jffs2 fallthru support

Jan Blunck (13):
VFS: Make lookup_hash() return a struct path
XXX 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: Set S_OPAQUE inode flag when creating directories
whiteout: Allow removal of a directory with whiteouts
whiteout: tmpfs whiteout support
whiteout: Split of ext2_append_link() from ext2_add_link()
whiteout: ext2 whiteout support
union-mount: Introduce MNT_UNION and MS_UNION flags
union-mount: Introduce union_mount structure and basic operations
union-mount: Drive the union cache via dcache
union-mount: Call do_whiteout() on unlink and rmdir in unions

Valerie Aurora (20):
VFS: Add read-only users count to superblock
fallthru: Basic fallthru definitions
fallthru: ext2 fallthru support
fallthru: tmpfs fallthru support
union-mount: Writable overlays/union mounts documentation
union-mount: Implement union lookup
union-mount: Support for mounting union mount file systems
union-mount: Copy up directory entries on first readdir()
VFS: Split inode_permission() and create path_permission()
VFS: Create user_path_nd() to lookup both parent and target
union-mount: In-kernel 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()

Documentation/filesystems/union-mounts.txt | 708 ++++++++++++++++++++++
Documentation/filesystems/vfs.txt | 16 +-
fs/Kconfig | 13 +
fs/Makefile | 1 +
fs/autofs4/autofs_i.h | 1 +
fs/autofs4/init.c | 11 +-
fs/autofs4/root.c | 6 +
fs/compat.c | 9 +
fs/dcache.c | 35 +-
fs/ext2/dir.c | 248 +++++++-
fs/ext2/ext2.h | 4 +
fs/ext2/inode.c | 11 +-
fs/ext2/namei.c | 89 +++-
fs/ext2/super.c | 6 +
fs/jffs2/dir.c | 104 ++++-
fs/jffs2/fs.c | 4 +
fs/jffs2/super.c | 2 +-
fs/libfs.c | 21 +-
fs/namei.c | 793 ++++++++++++++++++++++---
fs/namespace.c | 146 +++++-
fs/nfsd/nfs3xdr.c | 5 +
fs/nfsd/nfs4xdr.c | 5 +
fs/nfsd/nfsxdr.c | 4 +
fs/open.c | 116 +++-
fs/readdir.c | 18 +
fs/super.c | 23 +
fs/union.c | 881 ++++++++++++++++++++++++++++
fs/utimes.c | 13 +-
include/linux/dcache.h | 40 ++
include/linux/ext2_fs.h | 5 +
include/linux/fs.h | 16 +
include/linux/jffs2.h | 8 +
include/linux/mount.h | 7 +-
include/linux/namei.h | 2 +
include/linux/union.h | 77 +++
mm/shmem.c | 195 ++++++-
36 files changed, 3483 insertions(+), 160 deletions(-)
create mode 100644 Documentation/filesystems/union-mounts.txt
create mode 100644 fs/union.c
create mode 100644 include/linux/union.h

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/