[PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits
Baokun Li
libaokun at huaweicloud.com
Wed Aug 28 22:11:39 AEST 2024
Hi David,
On 2024/8/28 18:37, David Howells wrote:
> libaokun at huaweicloud.com 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 at kernel.org
>> Signed-off-by: Baokun Li <libaokun1 at huawei.com>
> Should remove_proc_entry() just remove the entire subtree anyway?
Yeah, in general, when we remove a proc entry, we don't care if it has
subtrees. But I'm not sure if there are certain scenarios where entries
must be removed in a certain order .
>
> But you can add:
>
> Acked-by: David Howells <dhowells at redhat.com>
>
> David
Thanks for your ack!
--
With Best Regards,
Baokun Li
More information about the Linux-erofs
mailing list