On Fri, Nov 01, 2019 at 03:51:06PM +0800, Ian Kent wrote: > When changing to use the new mount api the super block won't be > available when the xfs_mount struct is allocated so move setting the > super block in xfs_mount to xfs_fs_fill_super(). > > Signed-off-by: Ian Kent <raven@xxxxxxxxxx> > Reviewed-by: Brian Foster <bfoster@xxxxxxxxxx> > --- > fs/xfs/xfs_super.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c > index 4b570ba3456a..62dfc678c415 100644 > --- a/fs/xfs/xfs_super.c > +++ b/fs/xfs/xfs_super.c > @@ -1560,8 +1560,7 @@ xfs_destroy_percpu_counters( > } > > static struct xfs_mount * > -xfs_mount_alloc( > - struct super_block *sb) > +xfs_mount_alloc(void) > { > struct xfs_mount *mp; > > @@ -1569,7 +1568,6 @@ xfs_mount_alloc( > if (!mp) > return NULL; > > - mp->m_super = sb; Just out of curiosity, is there any place where we need m_super in between here... > spin_lock_init(&mp->m_sb_lock); > spin_lock_init(&mp->m_agirotor_lock); > INIT_RADIX_TREE(&mp->m_perag_tree, GFP_ATOMIC); > @@ -1605,9 +1603,10 @@ xfs_fs_fill_super( > * allocate mp and do all low-level struct initializations before we > * attach it to the super > */ > - mp = xfs_mount_alloc(sb); > + mp = xfs_mount_alloc(); > if (!mp) > goto out; > + mp->m_super = sb; ...and here? For example, logging errors? AFAICT the only thing that goes on between these two points is option parsing, right? (And the parsing has its own prefixed logging, etc.) --D > sb->s_fs_info = mp; > > error = xfs_parseargs(mp, (char *)data); >