From: Miklos Szeredi Date: Mon, 3 Nov 2025 13:10:38 +0000 (+0100) Subject: fuse: add WARN_ON and comment for RCU revalidate X-Git-Tag: v6.19-rc1~110^2~11 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=66c6a77e00a2f28330cca90c67339111cd54e54b;p=thirdparty%2Fkernel%2Flinux.git fuse: add WARN_ON and comment for RCU revalidate Signed-off-by: Miklos Szeredi --- diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c index 43ee4c7296a77..a153f449e2ad4 100644 --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c @@ -128,9 +128,17 @@ static int ovl_dentry_revalidate_common(struct dentry *dentry, unsigned int i; int ret = 1; - /* Careful in RCU mode */ - if (!inode) + if (!inode) { + /* + * Lookup of negative dentries will call ovl_dentry_init_flags() + * with NULL upperdentry and NULL oe, resulting in the + * DCACHE_OP*_REVALIDATE flags being cleared. Hence the only + * way to get a negative inode is due to a race with dentry + * destruction. + */ + WARN_ON(!(flags & LOOKUP_RCU)); return -ECHILD; + } oe = OVL_I_E(inode); lowerstack = ovl_lowerstack(oe);