浏览代码

simplify btrfs_lookup()

d_splice_alias() is fine with ERR_PTR(-E...) for inode

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 6 年之前
父节点
当前提交
3837d208d8
共有 1 个文件被更改,包括 3 次插入9 次删除
  1. 3 9
      fs/btrfs/inode.c

+ 3 - 9
fs/btrfs/inode.c

@@ -5807,16 +5807,10 @@ static int btrfs_dentry_delete(const struct dentry *dentry)
 static struct dentry *btrfs_lookup(struct inode *dir, struct dentry *dentry,
 static struct dentry *btrfs_lookup(struct inode *dir, struct dentry *dentry,
 				   unsigned int flags)
 				   unsigned int flags)
 {
 {
-	struct inode *inode;
-
-	inode = btrfs_lookup_dentry(dir, dentry);
-	if (IS_ERR(inode)) {
-		if (PTR_ERR(inode) == -ENOENT)
-			inode = NULL;
-		else
-			return ERR_CAST(inode);
-	}
+	struct inode *inode = btrfs_lookup_dentry(dir, dentry);
 
 
+	if (inode == ERR_PTR(-ENOENT))
+		inode = NULL;
 	return d_splice_alias(inode, dentry);
 	return d_splice_alias(inode, dentry);
 }
 }