lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20150305051530.23906.65097.stgit@notabene.brown>
Date:	Thu, 05 Mar 2015 16:21:21 +1100
From:	NeilBrown <neilb@...e.de>
To:	Alexander Viro <viro@...iv.linux.org.uk>
Cc:	linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [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

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ