Christoph Hellwig
2019-Jun-25 10:57 UTC
[Ocfs2-devel] [PATCH 2/4] vfs: create a generic checking function for FS_IOC_FSSETXATTR
On Fri, Jun 21, 2019 at 04:56:29PM -0700, Darrick J. Wong wrote:> From: Darrick J. Wong <darrick.wong at oracle.com> > > 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 at oracle.com> > Reviewed-by: Jan Kara <jack at suse.cz> > --- > 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 = { };> + memset(fa, 0, sizeof(struct fsxattr)); > + fa->fsx_xflags = ext4_iflags_to_xflags(ei->i_flags & EXT4_FL_USER_VISIBLE);Overly lone line.> + if (ext4_has_feature_project(inode->i_sb)) { > + fa->fsx_projid = (__u32)from_kprojid(&init_user_ns, > + ei->i_projid);The cast here looks bogus. Same comment for f2fs.
David Sterba
2019-Jun-25 17:02 UTC
[Ocfs2-devel] [PATCH 2/4] vfs: create a generic checking function for FS_IOC_FSSETXATTR
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 at oracle.com> > > > > 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 at oracle.com> > > Reviewed-by: Jan Kara <jack at suse.cz> > > --- > > 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.