libaokun@xxxxxxxxxxxxxxx wrote: > In netfs_init() or fscache_proc_init(), we create dentry under 'fs/netfs', > but in netfs_exit(), we only delete the proc entry of 'fs/netfs' without > deleting its subtree. This triggers the following WARNING: > > ================================================================== > remove_proc_entry: removing non-empty directory 'fs/netfs', leaking at least 'requests' > WARNING: CPU: 4 PID: 566 at fs/proc/generic.c:717 remove_proc_entry+0x160/0x1c0 > Modules linked in: netfs(-) > CPU: 4 UID: 0 PID: 566 Comm: rmmod Not tainted 6.11.0-rc3 #860 > RIP: 0010:remove_proc_entry+0x160/0x1c0 > Call Trace: > <TASK> > netfs_exit+0x12/0x620 [netfs] > __do_sys_delete_module.isra.0+0x14c/0x2e0 > do_syscall_64+0x4b/0x110 > entry_SYSCALL_64_after_hwframe+0x76/0x7e > ================================================================== > > Therefore use remove_proc_subtree instead() of remove_proc_entry() to > fix the above problem. > > Fixes: 7eb5b3e3a0a5 ("netfs, fscache: Move /proc/fs/fscache to /proc/fs/netfs and put in a symlink") > Cc: stable@xxxxxxxxxx > Signed-off-by: Baokun Li <libaokun1@xxxxxxxxxx> Should remove_proc_entry() just remove the entire subtree anyway? But you can add: Acked-by: David Howells <dhowells@xxxxxxxxxx> David