On Fri, Aug 23, 2019 at 08:59:54AM +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 | 65 ++++++++++++++++++++++++++++++++++------------------ > 1 file changed, 42 insertions(+), 23 deletions(-) > > diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c > index 7cdda17ee0ff..d3fc9938987d 100644 > --- a/fs/xfs/xfs_super.c > +++ b/fs/xfs/xfs_super.c ... > @@ -1885,6 +1868,42 @@ 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; > + > + /* > + * allocate mp and do all low-level struct initializations before we > + * attach it to the super > + */ > + mp = xfs_mount_alloc(sb); > + if (!mp) > + goto out; > + 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); > +out: > + return error; I know this is copied from the existing function, but there's really no need for an out label here. We can just return -ENOMEM in the one user above. Aside from that nit the rest looks fine to me. Brian > +} > + > STATIC void > xfs_fs_put_super( > struct super_block *sb) >