From: Al Viro Date: Mon, 4 May 2026 04:32:43 +0000 (-0400) Subject: find_acceptable_alias(): skip NORCU aliases with zero refcount X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=87e801e1678342fc23b1eb92c0eecedf5dca79cb;p=thirdparty%2Flinux.git find_acceptable_alias(): skip NORCU aliases with zero refcount similar to d_find_any_alias() situation Signed-off-by: Al Viro --- diff --git a/fs/exportfs/expfs.c b/fs/exportfs/expfs.c index fbd45e7ae706b..eafd99507afee 100644 --- a/fs/exportfs/expfs.c +++ b/fs/exportfs/expfs.c @@ -53,10 +53,10 @@ find_acceptable_alias(struct dentry *result, inode = result->d_inode; spin_lock(&inode->i_lock); for_each_alias(dentry, inode) { - dget(dentry); + if (!dget_alias_ilocked(dentry)) + continue; spin_unlock(&inode->i_lock); - if (toput) - dput(toput); + dput(toput); if (dentry != result && acceptable(context, dentry)) { dput(result); return dentry; @@ -66,8 +66,7 @@ find_acceptable_alias(struct dentry *result, } spin_unlock(&inode->i_lock); - if (toput) - dput(toput); + dput(toput); return NULL; }