Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8300807f authored by Al Viro's avatar Al Viro
Browse files

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: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 5b394b2d
Loading
Loading
Loading
Loading
+7 −12
Original line number Diff line number Diff line
@@ -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);

	} 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);
	if (IS_ERR(inode))
		return ERR_CAST(inode);

negative_out:
	}
	return d_splice_alias(inode, dentry);
}