From: Al Viro Date: Tue, 1 May 2018 00:00:22 +0000 (-0400) Subject: omfs_lookup(): report IO errors, use d_splice_alias() X-Git-Tag: v4.18-rc1~179^2~12 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=18fbbfc2bfab4c45074bddb16c478b4366a265d5;p=thirdparty%2Fkernel%2Flinux.git omfs_lookup(): report IO errors, use d_splice_alias() Signed-off-by: Al Viro --- diff --git a/fs/omfs/dir.c b/fs/omfs/dir.c index b7146526afff3..4bee3a72b9f37 100644 --- a/fs/omfs/dir.c +++ b/fs/omfs/dir.c @@ -305,11 +305,10 @@ static struct dentry *omfs_lookup(struct inode *dir, struct dentry *dentry, ino_t ino = be64_to_cpu(oi->i_head.h_self); brelse(bh); inode = omfs_iget(dir->i_sb, ino); - if (IS_ERR(inode)) - return ERR_CAST(inode); + } else if (bh != ERR_PTR(-ENOENT)) { + inode = ERR_CAST(bh); } - d_add(dentry, inode); - return NULL; + return d_splice_alias(inode, dentry); } /* sanity check block's self pointer */