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
