cleanup root inode handling in xfs_fs_fill_super
PATCH 1/1 cleanup root inode handling in xfs_fs_fill_super
- 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
Signed-off-by Christoph Hellwig <[email protected]>
fs/xfs/linux-2.6/xfs_super.c +9 -10
@@ -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:
Quoted 4 lines · Christoph Hellwig
- rename rootvp to root for clarify
- remove uselessvn_to_inodecall
- checkis_bad_inodebefore callingd_alloc_root
- use iput instead ofVN_RELEin the error case
Looks good.
Josef 'Jeff' Sipek.
Signature · 3 lines
FORTUNE PROVIDES QUESTIONS FOR THE GREAT ANSWERS: #19 A: To be or not to be. Q: What is the square root of 4b^2?