replace ->follow_link() with new method that could stay in RCU mode
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 17 Nov 2015 15:20:54 +0000 (10:20 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 9 Dec 2015 03:41:54 +0000 (22:41 -0500)
commit6b2553918d8b4e6de9853fd6315bec7271a2e592
tree85540dcb0dc0de3d67c68d0aa7b17058f4e96539
parent21fc61c73c3903c4c312d0802da01ec2b323d174
replace ->follow_link() with new method that could stay in RCU mode

new method: ->get_link(); replacement of ->follow_link().  The differences
are:
* inode and dentry are passed separately
* might be called both in RCU and non-RCU mode;
the former is indicated by passing it a NULL dentry.
* when called that way it isn't allowed to block
and should return ERR_PTR(-ECHILD) if it needs to be called
in non-RCU mode.

It's a flagday change - the old method is gone, all in-tree instances
converted.  Conversion isn't hard; said that, so far very few instances
do not immediately bail out when called in RCU mode.  That'll change
in the next commits.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
45 files changed:
Documentation/filesystems/Locking
Documentation/filesystems/porting
drivers/staging/lustre/lustre/llite/symlink.c
fs/9p/vfs_inode.c
fs/9p/vfs_inode_dotl.c
fs/affs/symlink.c
fs/autofs4/symlink.c
fs/btrfs/inode.c
fs/ceph/inode.c
fs/cifs/cifsfs.c
fs/cifs/cifsfs.h
fs/cifs/link.c
fs/coda/cnode.c
fs/configfs/symlink.c
fs/dcache.c
fs/ecryptfs/inode.c
fs/ext2/symlink.c
fs/ext4/symlink.c
fs/f2fs/namei.c
fs/fuse/dir.c
fs/gfs2/inode.c
fs/hostfs/hostfs_kern.c
fs/jffs2/symlink.c
fs/jfs/symlink.c
fs/kernfs/symlink.c
fs/libfs.c
fs/minix/inode.c
fs/namei.c
fs/ncpfs/inode.c
fs/nfs/symlink.c
fs/nilfs2/namei.c
fs/ocfs2/symlink.c
fs/overlayfs/inode.c
fs/proc/base.c
fs/proc/inode.c
fs/proc/namespaces.c
fs/proc/self.c
fs/proc/thread_self.c
fs/reiserfs/namei.c
fs/squashfs/symlink.c
fs/sysv/inode.c
fs/ubifs/file.c
fs/xfs/xfs_iops.c
include/linux/fs.h
mm/shmem.c