From: Al Viro Date: Tue, 10 Jan 2012 22:48:52 +0000 (-0500) Subject: hfsplus: creation of hidden dir on mount can fail X-Git-Tag: v3.3-rc1~106^2~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b3f2a92447b8443360ac117a3d7c06689562a70c;p=platform%2Fkernel%2Flinux-exynos.git hfsplus: creation of hidden dir on mount can fail Signed-off-by: Al Viro --- diff --git a/fs/hfsplus/super.c b/fs/hfsplus/super.c index edf0a80..427682c 100644 --- a/fs/hfsplus/super.c +++ b/fs/hfsplus/super.c @@ -499,9 +499,16 @@ static int hfsplus_fill_super(struct super_block *sb, void *data, int silent) if (!sbi->hidden_dir) { mutex_lock(&sbi->vh_mutex); sbi->hidden_dir = hfsplus_new_inode(sb, S_IFDIR); - hfsplus_create_cat(sbi->hidden_dir->i_ino, root, &str, - sbi->hidden_dir); + if (!sbi->hidden_dir) { + mutex_unlock(&sbi->vh_mutex); + err = -ENOMEM; + goto out_put_root; + } + err = hfsplus_create_cat(sbi->hidden_dir->i_ino, root, + &str, sbi->hidden_dir); mutex_unlock(&sbi->vh_mutex); + if (err) + goto out_put_hidden_dir; hfsplus_mark_inode_dirty(sbi->hidden_dir, HFSPLUS_I_CAT_DIRTY);