On Tue, Sep 24, 2019 at 09:22:43PM +0800, Ian Kent wrote: > Much of the code in xfs_fs_fill_super() will be used by the fill super > function of the new mount-api. > > So refactor the common code into a helper in an attempt to show what's > actually changed. > > Signed-off-by: Ian Kent <raven@xxxxxxxxxx> > --- > fs/xfs/xfs_super.c | 64 +++++++++++++++++++++++++++++++++------------------- > 1 file changed, 41 insertions(+), 23 deletions(-) > > diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c > index cfda58dd3822..ea3640ffd8f5 100644 > --- a/fs/xfs/xfs_super.c > +++ b/fs/xfs/xfs_super.c ... > @@ -1915,6 +1898,41 @@ xfs_fs_fill_super( > goto out_free_sb; > } > > +STATIC int > +xfs_fs_fill_super( > + struct super_block *sb, > + void *data, > + int silent) > +{ > + struct xfs_mount *mp = NULL; > + int error = -ENOMEM; Both variable initializations are unnecessary. With those fixed: Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx> > + > + /* > + * allocate mp and do all low-level struct initializations before we > + * attach it to the super > + */ > + mp = xfs_mount_alloc(sb); > + if (!mp) > + return -ENOMEM; > + sb->s_fs_info = mp; > + > + error = xfs_parseargs(mp, (char *)data); > + if (error) > + goto out_free_fsname; > + > + error = __xfs_fs_fill_super(mp, silent); > + if (error) > + goto out_free_fsname; > + > + return 0; > + > + out_free_fsname: > + sb->s_fs_info = NULL; > + xfs_free_fsname(mp); > + kfree(mp); > + return error; > +} > + > STATIC void > xfs_fs_put_super( > struct super_block *sb) >