Re: [PATCH 2/4] vfs: create a generic checking function for FS_IOC_FSSETXATTR

From: David Sterba
Date: Tue Jun 25 2019 - 13:02:10 EST


On Tue, Jun 25, 2019 at 03:57:25AM -0700, Christoph Hellwig wrote:
> On Fri, Jun 21, 2019 at 04:56:29PM -0700, Darrick J. Wong wrote:
> > From: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> >
> > Create a generic checking function for the incoming FS_IOC_FSSETXATTR
> > fsxattr values so that we can standardize some of the implementation
> > behaviors.
> >
> > Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> > Reviewed-by: Jan Kara <jack@xxxxxxx>
> > ---
> > fs/btrfs/ioctl.c | 21 +++++++++-------
> > fs/ext4/ioctl.c | 27 ++++++++++++++------
> > fs/f2fs/file.c | 26 ++++++++++++++-----
> > fs/inode.c | 17 +++++++++++++
> > fs/xfs/xfs_ioctl.c | 70 ++++++++++++++++++++++++++++++----------------------
> > include/linux/fs.h | 3 ++
> > 6 files changed, 111 insertions(+), 53 deletions(-)
> >
> >
> > diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
> > index f408aa93b0cf..7ddda5b4b6a6 100644
> > --- a/fs/btrfs/ioctl.c
> > +++ b/fs/btrfs/ioctl.c
> > @@ -366,6 +366,13 @@ static int check_xflags(unsigned int flags)
> > return 0;
> > }
> >
> > +static void __btrfs_ioctl_fsgetxattr(struct btrfs_inode *binode,
> > + struct fsxattr *fa)
> > +{
> > + memset(fa, 0, sizeof(*fa));
> > + fa->fsx_xflags = btrfs_inode_flags_to_xflags(binode->flags);
>
> Is there really much of a point in this helper? Epeciall as
> the zeroing could easily be done in the variable declaration
> line using
>
> struct fsxattr fa = { };

Agreed, not counting the initialization the wrapper is merely another
name for btrfs_inode_flags_to_xflags. I also find it slightly confusing
that __btrfs_ioctl_fsgetxattr name is too close to the ioctl callback
implementation btrfs_ioctl_fsgetxattr but only does some initialization.