Hi Al (and others), I wonder if you could look over this patchset. It allows RCU-walk to follow symlinks in many common cases, thus removing a surprising performance hit caused by using symlinks. The last could of patches make changes to XFS and NFS to support this but I haven't forwarded to the relevant lists yet. If/when the early code meets with approval I'll do that. The first patch almost certainly needs to be changed. I originally wrote this code when filesystems could see inside nameidata. It is now opaque so the simplest solution was to provide an accessor function. Maybe I should as a 'flags' arg to ->follow_link?? Or have ->follow_link and ->follow_link_rcu ?? What do you suggest? Thanks, NeilBrown --- NeilBrown (9): FS: make all ->follow_link handlers aware for LOOKUP_RCU 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: 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: allow follow_link to often succeed in RCU-walk. NFS: support LOOKUP_RCU in nfs_follow_link. drivers/staging/lustre/lustre/llite/symlink.c | 3 + fs/9p/vfs_inode.c | 6 + fs/9p/vfs_inode_dotl.c | 5 + fs/befs/linuxvfs.c | 2 fs/cifs/link.c | 2 fs/configfs/symlink.c | 7 + fs/ecryptfs/inode.c | 7 + fs/fuse/dir.c | 2 fs/gfs2/inode.c | 2 fs/hostfs/hostfs_kern.c | 7 + fs/inode.c | 26 ++++- fs/kernfs/symlink.c | 7 + fs/namei.c | 132 ++++++++++++++++--------- fs/nfs/inode.c | 22 ++++ fs/nfs/symlink.c | 17 +++ fs/overlayfs/inode.c | 3 + fs/proc/base.c | 2 fs/proc/namespaces.c | 3 + fs/proc/self.c | 4 + fs/proc/thread_self.c | 4 + fs/xfs/xfs_ioctl.c | 2 fs/xfs/xfs_iops.c | 13 ++ fs/xfs/xfs_symlink.c | 11 ++ fs/xfs/xfs_symlink.h | 2 include/linux/fs.h | 2 include/linux/namei.h | 1 include/linux/nfs_fs.h | 1 mm/shmem.c | 6 + 28 files changed, 234 insertions(+), 67 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