[PATCH 00/20] Support follow_link in RCU-walk - V3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Al,
 thanks for all your review help - particularly the fact that
 dentry->d_inode is not stable in RCU-walk.  That has lead to
 a number of changes.

 I think this set addresses all of your review comments, improves
 some documentation, and has a go at providing a solution for lustre.

 I hope to organize some proper testing soon, so I can confirm that it
 makes certain loads a lot faster.

Thanks,
NeilBrown


---

NeilBrown (20):
      Documentation: remove outdated information from automount-support.txt
      STAGING/lustre: limit follow_link recursion using stack space.
      VFS: replace {,total_}link_count in task_struct with pointer to nameidata
      ovl: rearrange ovl_follow_link to it doesn't need to call ->put_link
      VFS: replace nameidata arg to ->put_link with a char*.
      SECURITY: remove nameidata arg from inode_follow_link.
      VFS: remove nameidata args from ->follow_link
      VFS: make all ->follow_link handlers aware for LOOKUP_RCU
      security/selinux: pass 'flags' arg to avc_audit() and avc_has_perm_flags()
      security: make inode_follow_link RCU-walk aware
      VFS/namei: use terminate_walk when symlink lookup fails.
      VFS/namei: new flag to support RCU symlinks: LOOKUP_LINK_RCU.
      VFS/namei: abort RCU-walk on symlink if atime needs updating.
      VFS/namei: add 'inode' arg to put_link().
      VFS/namei: enhance follow_link to support RCU-walk.
      VFS/namei: enable RCU-walk when following symlinks.
      VFS/namei: handle LOOKUP_RCU in page_follow_link_light.
      xfs: use RCU to free 'struct xfs_mount'.
      XFS: allow follow_link to often succeed in RCU-walk.
      NFS: support LOOKUP_RCU in nfs_follow_link.


 Documentation/filesystems/Locking               |    4 
 Documentation/filesystems/automount-support.txt |   51 +---
 Documentation/filesystems/porting               |   23 ++
 Documentation/filesystems/vfs.txt               |    4 
 drivers/staging/lustre/lustre/llite/symlink.c   |   32 ++-
 fs/9p/v9fs.h                                    |    2 
 fs/9p/vfs_inode.c                               |   19 +-
 fs/9p/vfs_inode_dotl.c                          |   13 +
 fs/autofs4/symlink.c                            |    6 
 fs/befs/linuxvfs.c                              |   19 +-
 fs/ceph/inode.c                                 |    7 -
 fs/cifs/cifsfs.h                                |    3 
 fs/cifs/link.c                                  |    7 -
 fs/configfs/symlink.c                           |   16 +
 fs/debugfs/file.c                               |    5 
 fs/ecryptfs/inode.c                             |   16 +
 fs/exofs/symlink.c                              |    8 -
 fs/ext2/symlink.c                               |    7 -
 fs/ext3/symlink.c                               |    7 -
 fs/ext4/symlink.c                               |    7 -
 fs/freevxfs/vxfs_immed.c                        |   12 +
 fs/fuse/dir.c                                   |   11 +
 fs/gfs2/inode.c                                 |   14 +
 fs/hostfs/hostfs_kern.c                         |   15 +
 fs/hppfs/hppfs.c                                |   13 +
 fs/inode.c                                      |   26 ++
 fs/jffs2/symlink.c                              |   10 -
 fs/jfs/symlink.c                                |    7 -
 fs/kernfs/symlink.c                             |   15 +
 fs/libfs.c                                      |    4 
 fs/namei.c                                      |  281 +++++++++++++++--------
 fs/nfs/inode.c                                  |   21 ++
 fs/nfs/symlink.c                                |   26 ++
 fs/ntfs/namei.c                                 |    1 
 fs/overlayfs/inode.c                            |   35 ++-
 fs/proc/base.c                                  |    8 -
 fs/proc/inode.c                                 |    9 -
 fs/proc/namespaces.c                            |    9 -
 fs/proc/self.c                                  |   12 +
 fs/proc/thread_self.c                           |   15 +
 fs/sysv/symlink.c                               |    5 
 fs/ubifs/file.c                                 |    7 -
 fs/ufs/symlink.c                                |    8 -
 fs/xfs/xfs_ioctl.c                              |    2 
 fs/xfs/xfs_iops.c                               |   20 +-
 fs/xfs/xfs_mount.h                              |    2 
 fs/xfs/xfs_super.c                              |    4 
 fs/xfs/xfs_symlink.c                            |   15 +
 fs/xfs/xfs_symlink.h                            |    2 
 include/linux/fs.h                              |   12 -
 include/linux/namei.h                           |    7 -
 include/linux/nfs_fs.h                          |    1 
 include/linux/sched.h                           |    3 
 include/linux/security.h                        |   13 +
 mm/shmem.c                                      |   20 +-
 security/capability.c                           |    4 
 security/security.c                             |    7 -
 security/selinux/avc.c                          |   18 +
 security/selinux/hooks.c                        |   21 +-
 security/selinux/include/avc.h                  |    9 +
 60 files changed, 632 insertions(+), 348 deletions(-)

--
Signature

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




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux