[XFS] cleanup root inode handling in xfs_fs_fill_super
authorChristoph Hellwig <hch@infradead.org>
Thu, 27 Mar 2008 07:00:54 +0000 (18:00 +1100)
committerLachlan McIlroy <lachlan@redback.melbourne.sgi.com>
Fri, 18 Apr 2008 01:42:36 +0000 (11:42 +1000)
- rename rootvp to root for clarify
- remove useless vn_to_inode call
- check is_bad_inode before calling d_alloc_root
- use iput instead of VN_RELE in the error case

SGI-PV: 976035
SGI-Modid: xfs-linux-melb:xfs-kern:30708a

Signed-off-by: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Lachlan McIlroy <lachlan@sgi.com>
fs/xfs/linux-2.6/xfs_super.c

index cb9ce90d1deb7010d109c590999b1229b5139dcb..72e55db948d25309a0ded203c522b3f81088d65e 100644 (file)
@@ -1307,7 +1307,7 @@ xfs_fs_fill_super(
        void                    *data,
        int                     silent)
 {
-       struct inode            *rootvp;
+       struct inode            *root;
        struct xfs_mount        *mp = NULL;
        struct xfs_mount_args   *args = xfs_args_allocate(sb, silent);
        int                     error;
@@ -1345,19 +1345,18 @@ xfs_fs_fill_super(
        sb->s_time_gran = 1;
        set_posix_acl_flag(sb);
 
-       rootvp = igrab(mp->m_rootip->i_vnode);
-       if (!rootvp) {
+       root = igrab(mp->m_rootip->i_vnode);
+       if (!root) {
                error = ENOENT;
                goto fail_unmount;
        }
-
-       sb->s_root = d_alloc_root(vn_to_inode(rootvp));
-       if (!sb->s_root) {
-               error = ENOMEM;
+       if (is_bad_inode(root)) {
+               error = EINVAL;
                goto fail_vnrele;
        }
-       if (is_bad_inode(sb->s_root->d_inode)) {
-               error = EINVAL;
+       sb->s_root = d_alloc_root(root);
+       if (!sb->s_root) {
+               error = ENOMEM;
                goto fail_vnrele;
        }
 
@@ -1379,7 +1378,7 @@ fail_vnrele:
                dput(sb->s_root);
                sb->s_root = NULL;
        } else {
-               VN_RELE(rootvp);
+               iput(root);
        }
 
 fail_unmount: