]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
gfs2: use d_splice_alias() for ->lookup() return value
authorAl Viro <viro@zeniv.linux.org.uk>
Sat, 9 May 2026 16:31:57 +0000 (12:31 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sat, 6 Jun 2026 21:12:54 +0000 (17:12 -0400)
Reviewed-by: Andreas Gruenbacher <agruenba@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/gfs2/inode.c

index e9bf4879c07f7335f8e53938b44be21209fee4fd..6a3581e3ba93886b4c4aa344a292a5b0a67cdc13 100644 (file)
@@ -987,12 +987,8 @@ static struct dentry *__gfs2_lookup(struct inode *dir, struct dentry *dentry,
        int error;
 
        inode = gfs2_lookupi(dir, &dentry->d_name, 0);
-       if (inode == NULL) {
-               d_add(dentry, NULL);
-               return NULL;
-       }
-       if (IS_ERR(inode))
-               return ERR_CAST(inode);
+       if (inode == NULL || IS_ERR(inode))
+               return d_splice_alias(inode, dentry);
 
        gl = GFS2_I(inode)->i_gl;
        error = gfs2_glock_nq_init(gl, LM_ST_SHARED, LM_FLAG_ANY, &gh);