mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-08-31 02:21:39 -04:00
mm/damon/sysfs: kobject_del() region and target (error) dirs
On CONFIG_DEBUG_KOBJECT_RELEASE enabled kernel, lack of kobject_del()
could cause directories creation failures due to the name conflicts. Fix
those issues for the normal creation path of region directories and the
error path of target directories, by adding kobject_del() calls.
Link: https://lore.kernel.org/20260628220121.97360-3-sj@kernel.org
Fixes: 2031b14ea7 ("mm/damon/sysfs: support the physical address space monitoring")
Signed-off-by: SJ Park <sj@kernel.org>
Cc: <stable@vger.kernel.org> # 5.18.x
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
@@ -105,8 +105,10 @@ static void damon_sysfs_regions_rm_dirs(struct damon_sysfs_regions *regions)
|
||||
struct damon_sysfs_region **regions_arr = regions->regions_arr;
|
||||
int i;
|
||||
|
||||
for (i = 0; i < regions->nr; i++)
|
||||
for (i = 0; i < regions->nr; i++) {
|
||||
kobject_del(®ions_arr[i]->kobj);
|
||||
kobject_put(®ions_arr[i]->kobj);
|
||||
}
|
||||
regions->nr = 0;
|
||||
kfree(regions_arr);
|
||||
regions->regions_arr = NULL;
|
||||
@@ -370,13 +372,15 @@ static int damon_sysfs_targets_add_dirs(struct damon_sysfs_targets *targets,
|
||||
|
||||
err = damon_sysfs_target_add_dirs(target);
|
||||
if (err)
|
||||
goto out;
|
||||
goto del_out;
|
||||
|
||||
targets_arr[i] = target;
|
||||
targets->nr++;
|
||||
}
|
||||
return 0;
|
||||
|
||||
del_out:
|
||||
kobject_del(&target->kobj);
|
||||
out:
|
||||
damon_sysfs_targets_rm_dirs(targets);
|
||||
kobject_put(&target->kobj);
|
||||
|
||||
Reference in New Issue
Block a user