Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1422652AbcLPWtN (ORCPT ); Fri, 16 Dec 2016 17:49:13 -0500 Received: from mail-wj0-f194.google.com ([209.85.210.194]:34126 "EHLO mail-wj0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933629AbcLPWtD (ORCPT ); Fri, 16 Dec 2016 17:49:03 -0500 Date: Fri, 16 Dec 2016 23:48:59 +0100 From: Miklos Szeredi To: Al Viro , Linus Torvalds Cc: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Subject: [GIT PULL (resend)] readlink cleanup Message-ID: <20161216224859.GD27207@veci.piliscsaba.szeredi.hu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.7.1 (2016-10-04) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4494 Lines: 101 Al, Linus, I've got the ACK from Al for this set, except for the readlink signature conversion. But I firmly believe that that's also a valid cleanup, so here goes the unmodified resend. There's a conflict in ubifs, the obvious resolution is to use the new value of .get_link and remove the .readlink assignment. Please consider pulling the following cleanup: git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git readlink This is a rework of the readlink cleanup patchset from the last cycle. Now readlink(2) does the following: - if i_op->readlink() is non-NULL (only proc and afs mountpoints for now) then it calls that - otherwise call i_op->get_link() - signature of ->readlink() now matches that of ->get_link() In particular this last bullet point buys us: - less complexity, because we already handle the delayed free of the buffer and copying to userspace due to ->get_link() being the normal way to read the symlink - a cleanup of the proc namespace interface Thanks, Miklos --- Miklos Szeredi (10): ecryptfs: use vfs_get_link() proc/self: use generic_readlink vfs: replace calling i_op->readlink with vfs_readlink() vfs: default to generic_readlink() vfs: remove ".readlink = generic_readlink" assignments vfs: make generic_readlink() static vfs: convert ->readlink to same signature as ->get_link vfs: remove page_readlink() vfs: make readlink_copy() static nsfs: clean up ns_get_name() interface --- Documentation/filesystems/Locking | 6 +-- Documentation/filesystems/porting | 7 ++++ Documentation/filesystems/vfs.txt | 14 ++++--- drivers/staging/lustre/lustre/llite/symlink.c | 1 - fs/9p/vfs_inode.c | 1 - fs/9p/vfs_inode_dotl.c | 1 - fs/affs/symlink.c | 1 - fs/afs/mntpt.c | 2 +- fs/autofs4/symlink.c | 1 - fs/bad_inode.c | 8 +--- fs/btrfs/inode.c | 1 - fs/ceph/inode.c | 1 - fs/cifs/cifsfs.c | 1 - fs/coda/cnode.c | 1 - fs/configfs/symlink.c | 1 - fs/ecryptfs/inode.c | 30 ++++++-------- fs/ext2/symlink.c | 2 - fs/ext4/symlink.c | 3 -- fs/f2fs/namei.c | 2 - fs/fuse/dir.c | 1 - fs/gfs2/inode.c | 1 - fs/hostfs/hostfs_kern.c | 1 - fs/jffs2/symlink.c | 1 - fs/jfs/symlink.c | 2 - fs/kernfs/symlink.c | 1 - fs/libfs.c | 1 - fs/minix/inode.c | 1 - fs/namei.c | 58 ++++++++++++++++----------- fs/ncpfs/inode.c | 1 - fs/nfs/symlink.c | 1 - fs/nfsd/nfs4xdr.c | 8 ++-- fs/nfsd/vfs.c | 6 +-- fs/nilfs2/namei.c | 1 - fs/nsfs.c | 17 ++++++-- fs/ocfs2/symlink.c | 1 - fs/orangefs/symlink.c | 1 - fs/overlayfs/inode.c | 1 - fs/proc/base.c | 57 +++++++++----------------- fs/proc/inode.c | 1 - fs/proc/namespaces.c | 13 +++--- fs/proc/self.c | 13 ------ fs/proc/thread_self.c | 14 ------- fs/reiserfs/namei.c | 1 - fs/squashfs/symlink.c | 1 - fs/stat.c | 8 ++-- fs/sysv/inode.c | 1 - fs/ubifs/file.c | 1 - fs/xfs/xfs_ioctl.c | 4 +- fs/xfs/xfs_iops.c | 2 - include/linux/fs.h | 9 ++--- include/linux/proc_ns.h | 4 +- mm/shmem.c | 2 - 52 files changed, 124 insertions(+), 195 deletions(-)