Support follow_link in RCU-walk.
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest9 patches 6 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/9 | FS: make all ->follow_link handlers aware for LOOKUP_RCUdrivers/ fs/ fs/ +18 more | +78 | 0 replies | |
| 2/9 | VFS/namei: use terminate_walk when symlink lookup fails.fs/ | +20 | 0 replies | |
| 3/9 | VFS/namei: new flag to support RCU symlinks: LOOKUP_LINK_RCU.fs/ include/ | +14 | 0 replies | |
| 4/9 | VFS/namei: abort RCU-walk on symlink if atime needs updating.fs/ fs/ include/ | +26 | 0 replies | |
| 5/9 | VFS/namei: enhance follow_link to support RCU-walk.fs/ | +13 | 0 replies | |
| 6/9 | VFS/namei: enable RCU-walk when following symlinks.fs/ | +0 | 0 replies | |
| 7/9 | VFS/namei: handle LOOKUP_RCU in page_follow_link_light.fs/ | +27 | 0 replies | |
| 8/9 | XFS: allow follow_link to often succeed in RCU-walk.fs/ fs/ fs/ +1 more | +21 | 0 replies | |
| 9/9 | NFS: support LOOKUP_RCU in nfs_follow_link.fs/ fs/ include/ | +40 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/9] Support follow_link in RCU-walk.
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