Skip to content

Commit 0bcd29e

Browse files
LiBaokun96gregkh
authored andcommitted
netfs: Delete subtree of 'fs/netfs' when netfs module exits
commit 3c58a95 upstream. 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 torvalds#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: 7eb5b3e ("netfs, fscache: Move /proc/fs/fscache to /proc/fs/netfs and put in a symlink") Cc: [email protected] Signed-off-by: Baokun Li <[email protected]> Link: https://lore.kernel.org/r/[email protected] Acked-by: David Howells <[email protected]> Signed-off-by: Christian Brauner <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent 0641689 commit 0bcd29e

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

fs/netfs/main.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ static int __init netfs_init(void)
138138

139139
error_fscache:
140140
error_procfile:
141-
remove_proc_entry("fs/netfs", NULL);
141+
remove_proc_subtree("fs/netfs", NULL);
142142
error_proc:
143143
mempool_exit(&netfs_subrequest_pool);
144144
error_subreqpool:
@@ -155,7 +155,7 @@ fs_initcall(netfs_init);
155155
static void __exit netfs_exit(void)
156156
{
157157
fscache_exit();
158-
remove_proc_entry("fs/netfs", NULL);
158+
remove_proc_subtree("fs/netfs", NULL);
159159
mempool_exit(&netfs_subrequest_pool);
160160
kmem_cache_destroy(netfs_subrequest_slab);
161161
mempool_exit(&netfs_request_pool);

0 commit comments

Comments
 (0)