linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits
@ 2024-08-26 11:34 libaokun
  2024-08-28 10:37 ` David Howells
  2024-08-28 11:22 ` Christian Brauner
  0 siblings, 2 replies; 7+ messages in thread
From: libaokun @ 2024-08-26 11:34 UTC (permalink / raw)
  To: netfs, dhowells, jlayton
  Cc: hsiangkao, jefflexu, linux-erofs, brauner, linux-fsdevel,
	linux-kernel, libaokun, yangerkun, houtao1, yukuai3, wozizhi,
	Baokun Li, stable

From: Baokun Li <libaokun1@huawei.com>

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@kernel.org
Signed-off-by: Baokun Li <libaokun1@huawei.com>
---
 fs/netfs/main.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/netfs/main.c b/fs/netfs/main.c
index 5f0f438e5d21..9d6b49dc6694 100644
--- a/fs/netfs/main.c
+++ b/fs/netfs/main.c
@@ -142,7 +142,7 @@ static int __init netfs_init(void)
 
 error_fscache:
 error_procfile:
-	remove_proc_entry("fs/netfs", NULL);
+	remove_proc_subtree("fs/netfs", NULL);
 error_proc:
 	mempool_exit(&netfs_subrequest_pool);
 error_subreqpool:
@@ -159,7 +159,7 @@ fs_initcall(netfs_init);
 static void __exit netfs_exit(void)
 {
 	fscache_exit();
-	remove_proc_entry("fs/netfs", NULL);
+	remove_proc_subtree("fs/netfs", NULL);
 	mempool_exit(&netfs_subrequest_pool);
 	kmem_cache_destroy(netfs_subrequest_slab);
 	mempool_exit(&netfs_request_pool);
-- 
2.39.2


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits
  2024-08-26 11:34 [PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits libaokun
@ 2024-08-28 10:37 ` David Howells
  2024-08-28 12:11   ` Baokun Li
  2024-08-28 11:22 ` Christian Brauner
  1 sibling, 1 reply; 7+ messages in thread
From: David Howells @ 2024-08-28 10:37 UTC (permalink / raw)
  To: libaokun
  Cc: dhowells, netfs, jlayton, hsiangkao, jefflexu, linux-erofs,
	brauner, linux-fsdevel, linux-kernel, yangerkun, houtao1, yukuai3,
	wozizhi, Baokun Li, stable

libaokun@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@kernel.org
> Signed-off-by: Baokun Li <libaokun1@huawei.com>

Should remove_proc_entry() just remove the entire subtree anyway?

But you can add:

	Acked-by: David Howells <dhowells@redhat.com>

David


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits
  2024-08-26 11:34 [PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits libaokun
  2024-08-28 10:37 ` David Howells
@ 2024-08-28 11:22 ` Christian Brauner
  2024-08-28 12:13   ` Baokun Li
  1 sibling, 1 reply; 7+ messages in thread
From: Christian Brauner @ 2024-08-28 11:22 UTC (permalink / raw)
  To: netfs, dhowells, jlayton, libaokun
  Cc: Christian Brauner, jefflexu, linux-erofs, linux-fsdevel,
	linux-kernel, yangerkun, houtao1, yukuai3, wozizhi, Baokun Li,
	stable, Gao Xiang

On Mon, 26 Aug 2024 19:34:04 +0800, libaokun@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
> ==================================================================
> 
> [...]

Applied to the vfs.misc branch of the vfs/vfs.git tree.
Patches in the vfs.misc branch should appear in linux-next soon.

Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.

It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.

Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs.misc

[1/1] netfs: Delete subtree of 'fs/netfs' when netfs module exits
      https://git.kernel.org/vfs/vfs/c/0aef59b3eabb

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits
  2024-08-28 10:37 ` David Howells
@ 2024-08-28 12:11   ` Baokun Li
  0 siblings, 0 replies; 7+ messages in thread
From: Baokun Li @ 2024-08-28 12:11 UTC (permalink / raw)
  To: David Howells
  Cc: netfs, jlayton, hsiangkao, jefflexu, linux-erofs, brauner,
	linux-fsdevel, linux-kernel, yangerkun, houtao1, yukuai3, wozizhi,
	Baokun Li, stable, Baokun Li

Hi David,

On 2024/8/28 18:37, David Howells wrote:
> libaokun@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@kernel.org
>> Signed-off-by: Baokun Li <libaokun1@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@redhat.com>
>
> David

Thanks for your ack!

-- 
With Best Regards,
Baokun Li


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits
  2024-08-28 11:22 ` Christian Brauner
@ 2024-08-28 12:13   ` Baokun Li
  2024-08-28 13:37     ` Christian Brauner
  0 siblings, 1 reply; 7+ messages in thread
From: Baokun Li @ 2024-08-28 12:13 UTC (permalink / raw)
  To: Christian Brauner
  Cc: dhowells, jlayton, netfs, jefflexu, linux-erofs, linux-fsdevel,
	linux-kernel, yangerkun, houtao1, yukuai3, wozizhi, Baokun Li,
	stable, Gao Xiang, Baokun Li

On 2024/8/28 19:22, Christian Brauner wrote:
> On Mon, 26 Aug 2024 19:34:04 +0800, libaokun@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
>> ==================================================================

Hi Christian,


Thank you for applying this patch!

I just realized that the parentheses are in the wrong place here,
could you please help me correct them?
>> Therefore use remove_proc_subtree instead() of remove_proc_entry() to
^^ remove_proc_subtree() instead

Regards, Baokun

> Applied to the vfs.misc branch of the vfs/vfs.git tree.
> Patches in the vfs.misc branch should appear in linux-next soon.
>
> Please report any outstanding bugs that were missed during review in a
> new review to the original patch series allowing us to drop it.
>
> It's encouraged to provide Acked-bys and Reviewed-bys even though the
> patch has now been applied. If possible patch trailers will be updated.
>
> Note that commit hashes shown below are subject to change due to rebase,
> trailer updates or similar. If in doubt, please check the listed branch.
>
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
> branch: vfs.misc
>
> [1/1] netfs: Delete subtree of 'fs/netfs' when netfs module exits
>        https://git.kernel.org/vfs/vfs/c/0aef59b3eabb


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits
  2024-08-28 12:13   ` Baokun Li
@ 2024-08-28 13:37     ` Christian Brauner
  2024-08-28 13:42       ` Baokun Li
  0 siblings, 1 reply; 7+ messages in thread
From: Christian Brauner @ 2024-08-28 13:37 UTC (permalink / raw)
  To: Baokun Li
  Cc: dhowells, jlayton, netfs, jefflexu, linux-erofs, linux-fsdevel,
	linux-kernel, yangerkun, houtao1, yukuai3, wozizhi, Baokun Li,
	stable, Gao Xiang

On Wed, Aug 28, 2024 at 08:13:54PM GMT, Baokun Li wrote:
> On 2024/8/28 19:22, Christian Brauner wrote:
> > On Mon, 26 Aug 2024 19:34:04 +0800, libaokun@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
> > > ==================================================================
> 
> Hi Christian,
> 
> 
> Thank you for applying this patch!
> 
> I just realized that the parentheses are in the wrong place here,
> could you please help me correct them?
> > > Therefore use remove_proc_subtree instead() of remove_proc_entry() to
> ^^ remove_proc_subtree() instead

Sure, done.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits
  2024-08-28 13:37     ` Christian Brauner
@ 2024-08-28 13:42       ` Baokun Li
  0 siblings, 0 replies; 7+ messages in thread
From: Baokun Li @ 2024-08-28 13:42 UTC (permalink / raw)
  To: Christian Brauner
  Cc: dhowells, jlayton, netfs, jefflexu, linux-erofs, linux-fsdevel,
	linux-kernel, yangerkun, houtao1, yukuai3, wozizhi, stable,
	Gao Xiang, Baokun Li

On 2024/8/28 21:37, Christian Brauner wrote:
>> Hi Christian,
>>
>>
>> Thank you for applying this patch!
>>
>> I just realized that the parentheses are in the wrong place here,
>> could you please help me correct them?
>>>> Therefore use remove_proc_subtree instead() of remove_proc_entry() to
>> ^^ remove_proc_subtree() instead
> Sure, done.
>
Thanks a lot!


Cheers,
Baokun



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-08-28 13:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-26 11:34 [PATCH] netfs: Delete subtree of 'fs/netfs' when netfs module exits libaokun
2024-08-28 10:37 ` David Howells
2024-08-28 12:11   ` Baokun Li
2024-08-28 11:22 ` Christian Brauner
2024-08-28 12:13   ` Baokun Li
2024-08-28 13:37     ` Christian Brauner
2024-08-28 13:42       ` Baokun Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).