This series adds the infrastructure and conversion of filesystems to the new API. Two filesystems are not converted: FUSE and CIFS, as they behave differently from local filesystems (use the file pointer, don't perform permission checks). It's likely that these two can be supported with minor changes to the API, but this requires more thought. Quick xfstests on ext4, xfs and overlayfs didn't show any regressions. Other filesystems were only compile tested. Git tree is available here: git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git#miscattr --- Miklos Szeredi (18): vfs: add miscattr ops ecryptfs: stack miscattr ops ovl: stack miscattr btrfs: convert to miscattr ext2: convert to miscattr ext4: convert to miscattr f2fs: convert to miscattr gfs2: convert to miscattr orangefs: convert to miscattr xfs: convert to miscattr efivars: convert to miscattr hfsplus: convert to miscattr jfs: convert to miscattr nilfs2: convert to miscattr ocfs2: convert to miscattr reiserfs: convert to miscattr ubifs: convert to miscattr vfs: remove unused ioctl helpers Documentation/filesystems/locking.rst | 4 + Documentation/filesystems/vfs.rst | 14 ++ fs/btrfs/ctree.h | 2 + fs/btrfs/inode.c | 4 + fs/btrfs/ioctl.c | 248 ++++--------------- fs/ecryptfs/inode.c | 21 ++ fs/efivarfs/file.c | 77 ------ fs/efivarfs/inode.c | 43 ++++ fs/ext2/ext2.h | 6 +- fs/ext2/file.c | 2 + fs/ext2/ioctl.c | 85 +++---- fs/ext2/namei.c | 2 + fs/ext4/ext4.h | 11 +- fs/ext4/file.c | 2 + fs/ext4/ioctl.c | 209 ++++------------ fs/ext4/namei.c | 2 + fs/f2fs/f2fs.h | 2 + fs/f2fs/file.c | 212 +++-------------- fs/f2fs/namei.c | 2 + fs/gfs2/file.c | 56 +---- fs/gfs2/inode.c | 4 + fs/gfs2/inode.h | 2 + fs/hfsplus/dir.c | 2 + fs/hfsplus/hfsplus_fs.h | 13 +- fs/hfsplus/inode.c | 53 +++++ fs/hfsplus/ioctl.c | 84 ------- fs/inode.c | 87 ------- fs/ioctl.c | 329 ++++++++++++++++++++++++++ fs/jfs/file.c | 6 +- fs/jfs/ioctl.c | 104 +++----- fs/jfs/jfs_dinode.h | 7 - fs/jfs/jfs_inode.h | 3 +- fs/jfs/namei.c | 6 +- fs/nilfs2/file.c | 2 + fs/nilfs2/ioctl.c | 60 ++--- fs/nilfs2/namei.c | 2 + fs/nilfs2/nilfs.h | 2 + fs/ocfs2/file.c | 2 + fs/ocfs2/ioctl.c | 58 ++--- fs/ocfs2/ioctl.h | 2 + fs/ocfs2/namei.c | 3 + fs/ocfs2/ocfs2_ioctl.h | 8 - fs/orangefs/file.c | 79 ------- fs/orangefs/inode.c | 49 ++++ fs/overlayfs/dir.c | 2 + fs/overlayfs/inode.c | 43 ++++ fs/overlayfs/overlayfs.h | 2 + fs/reiserfs/file.c | 2 + fs/reiserfs/ioctl.c | 120 +++++----- fs/reiserfs/namei.c | 2 + fs/reiserfs/reiserfs.h | 6 +- fs/reiserfs/super.c | 2 +- fs/ubifs/dir.c | 2 + fs/ubifs/file.c | 2 + fs/ubifs/ioctl.c | 73 +++--- fs/ubifs/ubifs.h | 2 + fs/xfs/libxfs/xfs_fs.h | 4 - fs/xfs/xfs_ioctl.c | 294 +++++++---------------- fs/xfs/xfs_ioctl.h | 10 + fs/xfs/xfs_ioctl32.c | 2 - fs/xfs/xfs_ioctl32.h | 2 - fs/xfs/xfs_iops.c | 7 + include/linux/fs.h | 15 +- include/linux/miscattr.h | 52 ++++ 64 files changed, 1097 insertions(+), 1518 deletions(-) create mode 100644 include/linux/miscattr.h -- 2.26.2