lkml.org 
[lkml]   [2022]   [Nov]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
SubjectRe: [PATCH] btrfs: fix a resource leak in btrfs_init_sysfs()
From


On 2022/11/19 14:53, Qu Wenruo wrote:
>
>
> On 2022/11/19 14:43, Zhen Lei wrote:
>> When btrfs_debug_feature_attr_group fails to be created,
>> btrfs_feature_attr_group is not removed.
>>
>> Signed-off-by: Zhen Lei <thunder.leizhen@huawei.com>
>
> Reviewed-by: Qu Wenruo <wqu@suse.com>

Wait for a minute, should we call sysfs_unmerge_group() first before
calling sysfs_remove_group()?

As the sysfs_remove_group() will only remove the
btrfs_feature_attr_group, and kset_unregister() will only free
btrfs_kset, without removing the added btrfs_static_feature_attr_group.

I haven't yet find a function that will remove all children attrs in
just one go, or did I miss something?

Thanks,
Qu
>
> Thanks,
> Qu
>> ---
>>   fs/btrfs/sysfs.c | 2 +-
>>   1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
>> index 699b54b3acaae0b..947125f2ceaaf96 100644
>> --- a/fs/btrfs/sysfs.c
>> +++ b/fs/btrfs/sysfs.c
>> @@ -2322,7 +2322,7 @@ int __init btrfs_init_sysfs(void)
>>   #ifdef CONFIG_BTRFS_DEBUG
>>       ret = sysfs_create_group(&btrfs_kset->kobj,
>> &btrfs_debug_feature_attr_group);
>>       if (ret)
>> -        goto out2;
>> +        goto out_remove_group;
>>   #endif
>>       return 0;

\
 
 \ /
  Last update: 2022-11-20 04:13    [W:0.496 / U:0.448 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site