[PATCH 40/53] gfs2: stop using d_add().
NeilBrown <[email protected]> Fri, 13 Mar 2026 08:12:27 +1100
| Newsgroups | org.kernel.vger.ecryptfs,dev.linux.lists.gfs2,org.infradead.lists.linux-um,org.kernel.vger.ceph-devel,org.kernel.vger.linux-cifs,org.kernel.vger.linux-efi,org.kernel.vger.linux-ext4,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-nfs,org.kernel.vger.linux-trace-kernel,org.kernel.vger.linux-unionfs,org.kernel.vger.linux-xfs,org.kvack.linux-mm |
|---|---|
| Message-ID | <[email protected]> |
From: NeilBrown <[email protected]> "Best practice" is to use d_splice_alias() at the end of a ->lookup function. d_add() often works and is not incorrect in gfs2, as the inode is always NULL, but as it is planned to remove d_add(), change to use d_splice_alias(). Signed-off-by: NeilBrown <[email protected]> --- fs/gfs2/inode.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index 8344040ecaf7..9997fbc1084c 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c @@ -988,10 +988,9 @@ 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 (inode == NULL) + return d_splice_alias(NULL, dentry); + if (IS_ERR(inode)) return ERR_CAST(inode); -- 2.50.0.107.gf914562f5916.dirty