2021-04-07 21:56:32

by Miklos Szeredi

[permalink] [raw]
Subject: [GIT PULL] fileattr API

Hi Al,

Please pull from:

git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git fileattr_v4

Convert all (with the exception of CIFS) filesystems from handling
FS_IOC_[GS]ETFLAGS and FS_IOC_FS[GS]ETXATTR themselves to new i_ops and
common code moved into the VFS for these ioctls. This removes boilerplate
from filesystems, and allows these operations to be properly stacked in
overlayfs.

Thanks,
Miklos

---
Changes since v3:

- converted fuse
- removed overlayfs ioctl code
- moved d_is_special() check to callbacks where necessary
- user copy cosmetics

Changes since v2:

- renaming, most notably miscattr -> fileattr
- use memset instead of structure initialization
- drop gratuitous use of file_dentry()
- kerneldoc, comments, spelling improvements
- xfs: enable getting/setting FS_PROJINHERIT_FL and other tweaks
- btrfs: patch logistics

Changes since v1:

- rebased on 5.12-rc1 (mnt_userns churn)
- fixed LSM hook on overlayfs

----------------------------------------------------------------
Miklos Szeredi (23):
vfs: add fileattr ops
ecryptfs: stack fileattr ops
ovl: stack fileattr ops
btrfs: convert to fileattr
ext2: convert to fileattr
ext4: convert to fileattr
f2fs: convert to fileattr
gfs2: convert to fileattr
orangefs: convert to fileattr
xfs: convert to fileattr
efivars: convert to fileattr
hfsplus: convert to fileattr
jfs: convert to fileattr
nilfs2: convert to fileattr
ocfs2: convert to fileattr
reiserfs: convert to fileattr
ubifs: convert to fileattr
vfs: remove unused ioctl helpers
fuse: move ioctl to separate source file
fuse: unsigned open flags
fuse: add internal open/release helpers
fuse: convert to fileattr
ovl: remove unneeded ioctls

---
Documentation/filesystems/locking.rst | 5 +
Documentation/filesystems/vfs.rst | 15 ++
fs/btrfs/ctree.h | 3 +
fs/btrfs/inode.c | 4 +
fs/btrfs/ioctl.c | 226 +++-------------
fs/ecryptfs/inode.c | 22 ++
fs/efivarfs/file.c | 77 ------
fs/efivarfs/inode.c | 44 +++
fs/ext2/ext2.h | 7 +-
fs/ext2/file.c | 2 +
fs/ext2/ioctl.c | 88 +++---
fs/ext2/namei.c | 2 +
fs/ext4/ext4.h | 12 +-
fs/ext4/file.c | 2 +
fs/ext4/ioctl.c | 208 +++------------
fs/ext4/namei.c | 2 +
fs/f2fs/f2fs.h | 3 +
fs/f2fs/file.c | 216 +++------------
fs/f2fs/namei.c | 2 +
fs/fuse/Makefile | 2 +-
fs/fuse/dir.c | 6 +-
fs/fuse/file.c | 435 +++---------------------------
fs/fuse/fuse_i.h | 40 ++-
fs/fuse/ioctl.c | 490 ++++++++++++++++++++++++++++++++++
fs/gfs2/file.c | 63 ++---
fs/gfs2/inode.c | 4 +
fs/gfs2/inode.h | 3 +
fs/hfsplus/dir.c | 2 +
fs/hfsplus/hfsplus_fs.h | 14 +-
fs/hfsplus/inode.c | 54 ++++
fs/hfsplus/ioctl.c | 84 ------
fs/inode.c | 87 ------
fs/ioctl.c | 325 ++++++++++++++++++++++
fs/jfs/file.c | 6 +-
fs/jfs/ioctl.c | 111 +++-----
fs/jfs/jfs_dinode.h | 7 -
fs/jfs/jfs_inode.h | 4 +-
fs/jfs/namei.c | 6 +-
fs/nilfs2/file.c | 2 +
fs/nilfs2/ioctl.c | 61 ++---
fs/nilfs2/namei.c | 2 +
fs/nilfs2/nilfs.h | 3 +
fs/ocfs2/file.c | 2 +
fs/ocfs2/ioctl.c | 59 ++--
fs/ocfs2/ioctl.h | 3 +
fs/ocfs2/namei.c | 3 +
fs/ocfs2/ocfs2_ioctl.h | 8 -
fs/orangefs/file.c | 79 ------
fs/orangefs/inode.c | 50 ++++
fs/overlayfs/dir.c | 2 +
fs/overlayfs/file.c | 110 --------
fs/overlayfs/inode.c | 77 ++++++
fs/overlayfs/overlayfs.h | 5 +-
fs/overlayfs/readdir.c | 4 -
fs/reiserfs/file.c | 2 +
fs/reiserfs/ioctl.c | 121 ++++-----
fs/reiserfs/namei.c | 2 +
fs/reiserfs/reiserfs.h | 7 +-
fs/reiserfs/super.c | 2 +-
fs/ubifs/dir.c | 2 +
fs/ubifs/file.c | 2 +
fs/ubifs/ioctl.c | 78 +++---
fs/ubifs/ubifs.h | 3 +
fs/xfs/libxfs/xfs_fs.h | 4 -
fs/xfs/xfs_ioctl.c | 258 +++++-------------
fs/xfs/xfs_ioctl.h | 11 +
fs/xfs/xfs_ioctl32.c | 2 -
fs/xfs/xfs_ioctl32.h | 2 -
fs/xfs/xfs_iops.c | 7 +
include/linux/fileattr.h | 59 ++++
include/linux/fs.h | 16 +-
71 files changed, 1724 insertions(+), 2007 deletions(-)
create mode 100644 fs/fuse/ioctl.c
create mode 100644 include/linux/fileattr.h


2021-04-09 01:53:17

by Al Viro

[permalink] [raw]
Subject: Re: [GIT PULL] fileattr API

On Wed, Apr 07, 2021 at 09:22:52PM +0200, Miklos Szeredi wrote:
> Hi Al,
>
> Please pull from:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git fileattr_v4
>
> Convert all (with the exception of CIFS) filesystems from handling
> FS_IOC_[GS]ETFLAGS and FS_IOC_FS[GS]ETXATTR themselves to new i_ops and
> common code moved into the VFS for these ioctls. This removes boilerplate
> from filesystems, and allows these operations to be properly stacked in
> overlayfs.

Umm... v4 or v5?

2021-04-09 02:03:48

by Al Viro

[permalink] [raw]
Subject: Re: [GIT PULL] fileattr API

On Fri, Apr 09, 2021 at 01:52:11AM +0000, Al Viro wrote:
> On Wed, Apr 07, 2021 at 09:22:52PM +0200, Miklos Szeredi wrote:
> > Hi Al,
> >
> > Please pull from:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs.git fileattr_v4
> >
> > Convert all (with the exception of CIFS) filesystems from handling
> > FS_IOC_[GS]ETFLAGS and FS_IOC_FS[GS]ETXATTR themselves to new i_ops and
> > common code moved into the VFS for these ioctls. This removes boilerplate
> > from filesystems, and allows these operations to be properly stacked in
> > overlayfs.
>
> Umm... v4 or v5?

Looks like they only differ in making a couple of fuse helpers static.
Grabbed and merged into #for-next; will push if it passes the smoke
test...