aboutsummaryrefslogtreecommitdiffstats
path: root/fs/f2fs
diff options
context:
space:
mode:
authorChao Yu <chao2.yu@samsung.com>2014-07-25 00:55:09 -0400
committerJaegeuk Kim <jaegeuk@kernel.org>2014-07-25 11:19:57 -0400
commit9d847950770da7102d4efc02d0939ce28e3a7dd0 (patch)
treed1849f191f42de84c1cc36e7f3692e3b85937e50 /fs/f2fs
parentdbf20cb259e879e2d939fd3fd5c792732d845195 (diff)
f2fs: fix to put root inode in error path of fill_super
We should put root inode correctly in error path of fill_super, otherwise we may encounter a leak case of inode resource. Signed-off-by: Chao Yu <chao2.yu@samsung.com> Reviewed-by: Gu Zheng <guz.fnst@cn.fujitsu.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r--fs/f2fs/super.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
index 870fe199bafb..34649aa66e04 100644
--- a/fs/f2fs/super.c
+++ b/fs/f2fs/super.c
@@ -1033,8 +1033,9 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)
1033 goto free_node_inode; 1033 goto free_node_inode;
1034 } 1034 }
1035 if (!S_ISDIR(root->i_mode) || !root->i_blocks || !root->i_size) { 1035 if (!S_ISDIR(root->i_mode) || !root->i_blocks || !root->i_size) {
1036 iput(root);
1036 err = -EINVAL; 1037 err = -EINVAL;
1037 goto free_root_inode; 1038 goto free_node_inode;
1038 } 1039 }
1039 1040
1040 sb->s_root = d_make_root(root); /* allocate root dentry */ 1041 sb->s_root = d_make_root(root); /* allocate root dentry */