Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6
[pandora-kernel.git] / fs / xfs / linux-2.6 / xfs_super.c
index a9c6ccf..9a72dda 100644 (file)
@@ -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"
@@ -1407,33 +1406,31 @@ xfs_fs_fill_super(
        sb->s_time_gran = 1;
        set_posix_acl_flag(sb);
 
-       error = xfs_syncd_init(mp);
+       error = xfs_mountfs(mp);
        if (error)
                goto out_filestream_unmount;
 
-       error = xfs_mountfs(mp);
+       error = xfs_syncd_init(mp);
        if (error)
-               goto out_syncd_stop;
+               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_syncd_stop(mp);
  out_filestream_unmount:
        xfs_filestream_unmount(mp);
  out_free_sb:
@@ -1448,17 +1445,11 @@ 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:
+ out_iput:
+       iput(root);
+ out_syncd_stop:
        xfs_syncd_stop(mp);
-
+ out_unmount:
        /*
         * Blow away any referenced inode in the filestreams cache.
         * This can and will cause log traffic as inodes go inactive