[PATCH 00/38] Union mounts - union stack as linked list

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Valerie Aurora
Date: Tuesday, June 15, 2010 - 11:39 am

This version of union mounts implements two major changes requested by
Al Viro:

* 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.

* On union mount, clone the underlying read-only mounts and keep them
  in a list hanging off the superblock of the topmost file system.

It also includes many other minor fixups, but those are the big
changes.

Patches are against 2.6.34.  Git version is in branch "linked_list" of:

git://git.kernel.org/pub/scm/linux/kernel/git/val/linux-2.6.git

Next up: Rewrite user_path_nd() and associated code, and implement the
rest of Al Viro's code review comments.

-VAL

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

Jan Blunck (11):
  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: 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: Call do_whiteout() on unlink and rmdir in unions

Valerie Aurora (25):
  VFS: Comment follow_mount() and friends
  VFS: Add read-only users count to superblock
  fallthru: Basic fallthru definitions
  fallthru: ext2 fallthru support
  fallthru: tmpfs fallthru support
  union-mount: Union mounts documentation
  union-mount: Introduce union_dir structure and basic operations
  union-mount: Free union dirs on removal from dcache
  union-mount: Support for mounting union mount file systems
  union-mount: Implement union lookup
  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 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()

 Documentation/filesystems/union-mounts.txt |  759 ++++++++++++++++++++++++++++
 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                                |   32 ++-
 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                                 |  751 ++++++++++++++++++++++++----
 fs/namespace.c                             |  263 ++++++++++-
 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                                 |   24 +
 fs/union.c                                 |  693 +++++++++++++++++++++++++
 fs/union.h                                 |   80 +++
 fs/utimes.c                                |   14 +-
 fs/xattr.c                                 |   65 ++-
 include/linux/dcache.h                     |   16 +-
 include/linux/ext2_fs.h                    |    5 +
 include/linux/fs.h                         |   20 +
 include/linux/jffs2.h                      |    8 +
 include/linux/mount.h                      |    6 +-
 include/linux/namei.h                      |    2 +
 mm/shmem.c                                 |  195 +++++++-
 37 files changed, 3445 insertions(+), 182 deletions(-)
 create mode 100644 Documentation/filesystems/union-mounts.txt
 create mode 100644 fs/union.c
 create mode 100644 fs/union.h

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

Messages in current thread:
[PATCH 00/38] Union mounts - union stack as linked list, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 01/38] VFS: Comment follow_mount() and friends, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 02/38] VFS: Make lookup_hash() return a struct path, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 03/38] VFS: Add read-only users count to superblock, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 09/38] whiteout: tmpfs whiteout support, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 11/38] whiteout: ext2 whiteout support, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 12/38] whiteout: jffs2 whiteout support, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 14/38] fallthru: ext2 fallthru support, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 16/38] fallthru: tmpfs fallthru support, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 17/38] union-mount: Union mounts documentation, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 22/38] union-mount: Implement union lookup, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 27/38] union-mount: In-kernel file copyup routines, Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 29/38] union-mount: Implement union-aware link(), Valerie Aurora, (Tue Jun 15, 11:39 am)
[PATCH 30/38] union-mount: Implement union-aware rename(), Valerie Aurora, (Tue Jun 15, 11:40 am)
[PATCH 32/38] union-mount: Implement union-aware chown(), Valerie Aurora, (Tue Jun 15, 11:40 am)
[PATCH 33/38] union-mount: Implement union-aware truncate(), Valerie Aurora, (Tue Jun 15, 11:40 am)
[PATCH 35/38] union-mount: Implement union-aware lchown(), Valerie Aurora, (Tue Jun 15, 11:40 am)
[PATCH 36/38] union-mount: Implement union-aware utimensat(), Valerie Aurora, (Tue Jun 15, 11:40 am)
[PATCH 37/38] union-mount: Implement union-aware setxattr(), Valerie Aurora, (Tue Jun 15, 11:40 am)
[PATCH 38/38] union-mount: Implement union-aware lsetxattr(), Valerie Aurora, (Tue Jun 15, 11:40 am)
Re: [PATCH 17/38] union-mount: Union mounts documentation, Valerie Aurora, (Thu Jun 17, 11:39 am)
Re: [PATCH 17/38] union-mount: Union mounts documentation, Valerie Aurora, (Fri Jun 18, 2:06 pm)
Re: [PATCH 17/38] union-mount: Union mounts documentation, Miklos Szeredi, (Mon Jun 21, 6:14 am)
Re: [PATCH 17/38] union-mount: Union mounts documentation, Valerie Aurora, (Mon Jun 21, 4:17 pm)
Re: [PATCH 11/38] whiteout: ext2 whiteout support, Ian Kent, (Mon Jul 12, 9:24 pm)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Ian Kent, (Mon Jul 12, 9:30 pm)
Re: [PATCH 22/38] union-mount: Implement union lookup, Valerie Aurora, (Mon Jul 19, 2:58 pm)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Miklos Szeredi, (Wed Aug 4, 7:44 am)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Valerie Aurora, (Wed Aug 4, 3:48 pm)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Miklos Szeredi, (Thu Aug 5, 3:36 am)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Miklos Szeredi, (Thu Aug 5, 4:13 am)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Valerie Aurora, (Thu Aug 5, 4:30 pm)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Valerie Aurora, (Fri Aug 6, 10:12 am)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Valerie Aurora, (Fri Aug 6, 10:16 am)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Miklos Szeredi, (Fri Aug 6, 10:44 am)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Valerie Aurora, (Tue Aug 17, 3:27 pm)
Re: [PATCH 14/38] fallthru: ext2 fallthru support, Miklos Szeredi, (Wed Aug 18, 1:26 am)