This is a note to let you know that I've just added the patch titled fuse: revalidate: don't invalidate if interrupted to the 6.1-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: fuse-revalidate-don-t-invalidate-if-interrupted.patch and it can be found in the queue-6.1 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From a9d1c4c6df0e568207907c04aed9e7beb1294c42 Mon Sep 17 00:00:00 2001 From: Miklos Szeredi <mszeredi@xxxxxxxxxx> Date: Wed, 7 Jun 2023 17:49:20 +0200 Subject: fuse: revalidate: don't invalidate if interrupted From: Miklos Szeredi <mszeredi@xxxxxxxxxx> commit a9d1c4c6df0e568207907c04aed9e7beb1294c42 upstream. If the LOOKUP request triggered from fuse_dentry_revalidate() is interrupted, then the dentry will be invalidated, possibly resulting in submounts being unmounted. Reported-by: Xu Rongbo <xurongbo@xxxxxxxxx> Closes: https://lore.kernel.org/all/CAJfpegswN_CJJ6C3RZiaK6rpFmNyWmXfaEpnQUJ42KCwNF5tWw@xxxxxxxxxxxxxx/ Fixes: 9e6268db496a ("[PATCH] FUSE - read-write operations") Cc: <stable@xxxxxxxxxxxxxxx> Signed-off-by: Miklos Szeredi <mszeredi@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/fuse/dir.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/fs/fuse/dir.c +++ b/fs/fuse/dir.c @@ -258,7 +258,7 @@ static int fuse_dentry_revalidate(struct spin_unlock(&fi->lock); } kfree(forget); - if (ret == -ENOMEM) + if (ret == -ENOMEM || ret == -EINTR) goto out; if (ret || fuse_invalid_attr(&outarg.attr) || fuse_stale_inode(inode, outarg.generation, &outarg.attr)) Patches currently in stable-queue which might be from mszeredi@xxxxxxxxxx are queue-6.1/fuse-ioctl-translate-enosys-in-outarg.patch queue-6.1/fuse-revalidate-don-t-invalidate-if-interrupted.patch queue-6.1/fuse-apply-flags2-only-when-userspace-set-the-fuse_init_ext.patch