summaryrefslogtreecommitdiffstats
path: root/fs/f2fs
diff options
context:
space:
mode:
authorChao Yu <chao2.yu@samsung.com>2014-07-25 06:55:09 +0200
committerJaegeuk Kim <jaegeuk@kernel.org>2014-07-25 17:19:57 +0200
commit9d847950770da7102d4efc02d0939ce28e3a7dd0 (patch)
treed1849f191f42de84c1cc36e7f3692e3b85937e50 /fs/f2fs
parentf2fs: avoid use invalid mapping of node_inode when evict meta inode (diff)
downloadlinux-9d847950770da7102d4efc02d0939ce28e3a7dd0.tar.xz
linux-9d847950770da7102d4efc02d0939ce28e3a7dd0.zip
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)
goto free_node_inode;
}
if (!S_ISDIR(root->i_mode) || !root->i_blocks || !root->i_size) {
+ iput(root);
err = -EINVAL;
- goto free_root_inode;
+ goto free_node_inode;
}
sb->s_root = d_make_root(root); /* allocate root dentry */