OSDN Git Service

bfs_lookup(): use d_splice_alias()
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 30 Apr 2018 23:05:17 +0000 (19:05 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 22 May 2018 18:27:38 +0000 (14:27 -0400)
code is actually simpler that way.

Acked-by: "Tigran A. Aivazian" <aivazian.tigran@gmail.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/bfs/dir.c

index ee832ca..facf961 100644 (file)
@@ -141,14 +141,9 @@ static struct dentry *bfs_lookup(struct inode *dir, struct dentry *dentry,
                unsigned long ino = (unsigned long)le16_to_cpu(de->ino);
                brelse(bh);
                inode = bfs_iget(dir->i_sb, ino);
-               if (IS_ERR(inode)) {
-                       mutex_unlock(&info->bfs_lock);
-                       return ERR_CAST(inode);
-               }
        }
        mutex_unlock(&info->bfs_lock);
-       d_add(dentry, inode);
-       return NULL;
+       return d_splice_alias(inode, dentry);
 }
 
 static int bfs_link(struct dentry *old, struct inode *dir,