diff options
Diffstat (limited to 'fs/xfs/linux-2.6/xfs_super.c')
| -rw-r--r-- | fs/xfs/linux-2.6/xfs_super.c | 36 | 
1 files changed, 14 insertions, 22 deletions
diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index a1a881e68a9..25fd2cd6c8b 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -33,7 +33,6 @@  #include "xfs_dinode.h"  #include "xfs_inode.h"  #include "xfs_btree.h" -#include "xfs_btree_trace.h"  #include "xfs_ialloc.h"  #include "xfs_bmap.h"  #include "xfs_rtalloc.h" @@ -1412,37 +1411,35 @@ xfs_fs_fill_super(  	sb->s_time_gran = 1;  	set_posix_acl_flag(sb); -	error = xfs_syncd_init(mp); -	if (error) -		goto out_filestream_unmount; -  	xfs_inode_shrinker_register(mp);  	error = xfs_mountfs(mp);  	if (error) -		goto out_syncd_stop; +		goto out_filestream_unmount; + +	error = xfs_syncd_init(mp); +	if (error) +		goto out_unmount;  	root = igrab(VFS_I(mp->m_rootip));  	if (!root) {  		error = ENOENT; -		goto fail_unmount; +		goto out_syncd_stop;  	}  	if (is_bad_inode(root)) {  		error = EINVAL; -		goto fail_vnrele; +		goto out_syncd_stop;  	}  	sb->s_root = d_alloc_root(root);  	if (!sb->s_root) {  		error = ENOMEM; -		goto fail_vnrele; +		goto out_iput;  	}  	return 0; - out_syncd_stop: -	xfs_inode_shrinker_unregister(mp); -	xfs_syncd_stop(mp);   out_filestream_unmount: +	xfs_inode_shrinker_unregister(mp);  	xfs_filestream_unmount(mp);   out_free_sb:  	xfs_freesb(mp); @@ -1456,17 +1453,12 @@ xfs_fs_fill_super(   out:  	return -error; - fail_vnrele: -	if (sb->s_root) { -		dput(sb->s_root); -		sb->s_root = NULL; -	} else { -		iput(root); -	} - - fail_unmount: -	xfs_inode_shrinker_unregister(mp); + out_iput: +	iput(root); + out_syncd_stop:  	xfs_syncd_stop(mp); + out_unmount: +	xfs_inode_shrinker_unregister(mp);  	/*  	 * Blow away any referenced inode in the filestreams cache.  |