exfat: fix pointer error checking

Fix missing result check of exfat_build_inode().
And use PTR_ERR_OR_ZERO instead of PTR_ERR.

Signed-off-by: Tetsuhiro Kohada <kohada.t2@gmail.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
This commit is contained in:
Tetsuhiro Kohada 2020-08-27 08:24:47 +09:00 • committed by Namjae Jeon
commit 7c25c64ad9

13
namei.c
View file

@ -613,7 +613,8 @@ static int exfat_create(struct inode *dir, struct dentry *dentry, umode_t mode,
i_pos = exfat_make_i_pos(&info);
inode = exfat_build_inode(sb, &info, i_pos);
if (IS_ERR(inode))
err = PTR_ERR_OR_ZERO(inode);
if (err)
goto unlock;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)
@ -798,10 +799,9 @@ static struct dentry *exfat_lookup(struct inode *dir, struct dentry *dentry,
i_pos = exfat_make_i_pos(&info);
inode = exfat_build_inode(sb, &info, i_pos);
if (IS_ERR(inode)) {
err = PTR_ERR(inode);
err = PTR_ERR_OR_ZERO(inode);
if (err)
goto unlock;
}
i_mode = inode->i_mode;
alias = d_find_alias(inode);
@ -972,10 +972,9 @@ static int exfat_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
i_pos = exfat_make_i_pos(&info);
inode = exfat_build_inode(sb, &info, i_pos);
if (IS_ERR(inode)) {
err = PTR_ERR(inode);
err = PTR_ERR_OR_ZERO(inode);
if (err)
goto unlock;
}
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 16, 0)
inode_inc_iversion(inode);