clean erofs_lookup()
d_splice_alias() does the right thing when given ERR_PTR(-E...) for inode. No need for gotos, multiple returns, etc. in there. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
5b394b2ddf
commit
8300807f9e
|
@ -223,18 +223,13 @@ static struct dentry *erofs_lookup(struct inode *dir,
|
|||
if (err == -ENOENT) {
|
||||
/* negative dentry */
|
||||
inode = NULL;
|
||||
goto negative_out;
|
||||
} else if (unlikely(err))
|
||||
return ERR_PTR(err);
|
||||
|
||||
debugln("%s, %s (nid %llu) found, d_type %u", __func__,
|
||||
dentry->d_name.name, nid, d_type);
|
||||
|
||||
inode = erofs_iget(dir->i_sb, nid, d_type == EROFS_FT_DIR);
|
||||
if (IS_ERR(inode))
|
||||
return ERR_CAST(inode);
|
||||
|
||||
negative_out:
|
||||
} else if (unlikely(err)) {
|
||||
inode = ERR_PTR(err);
|
||||
} else {
|
||||
debugln("%s, %s (nid %llu) found, d_type %u", __func__,
|
||||
dentry->d_name.name, nid, d_type);
|
||||
inode = erofs_iget(dir->i_sb, nid, d_type == EROFS_FT_DIR);
|
||||
}
|
||||
return d_splice_alias(inode, dentry);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue