On Thu, Jul 28, 2022 at 4:57 PM Miklos Szeredi <miklos@xxxxxxxxxx> wrote: > > On Thu, 28 Jul 2022 at 08:39, Jiachen Zhang > <zhangjiachen.jaycee@xxxxxxxxxxxxx> wrote: > > > > Some code paths cannot guarantee the inode have any dentry alias. So > > WARN_ON() all !dentry may flood the kernel logs. > > > > For example, when an overlayfs inode is watched by inotifywait (1), and > > someone is trying to read the /proc/$(pidof inotifywait)/fdinfo/INOTIFY_FD, > > at that time if the dentry has been reclaimed by kernel (such as > > echo 2 > /proc/sys/vm/drop_caches), there will be a WARN_ON(). The > > printed call stack would be like: > > > > ? show_mark_fhandle+0xf0/0xf0 > > show_mark_fhandle+0x4a/0xf0 > > ? show_mark_fhandle+0xf0/0xf0 > > ? seq_vprintf+0x30/0x50 > > ? seq_printf+0x53/0x70 > > ? show_mark_fhandle+0xf0/0xf0 > > inotify_fdinfo+0x70/0x90 > > show_fdinfo.isra.4+0x53/0x70 > > seq_show+0x130/0x170 > > seq_read+0x153/0x440 > > vfs_read+0x94/0x150 > > ksys_read+0x5f/0xe0 > > do_syscall_64+0x59/0x1e0 > > entry_SYSCALL_64_after_hwframe+0x44/0xa9 > > > > So let's replace WARN_ON() with WARN_ON_ONCE() to avoid kernel log > > flooding. > > Better just drop the WARN_ON() completely in that case, since it's a > normally occurring condition. > > Thanks, > Miklos OK. I will send the v2 patch later. Thanks, Jiachen