Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

mm/damon/sysfs-scheme: cleanup quotas subdirs on scheme dir setup failure

When a DAMOS-scheme DAMON sysfs directory setup fails after setup of
quotas/ directory, subdirectories of quotas/ directory are not cleaned up.
As a result, DAMON sysfs interface is nearly broken until the system
reboots, and the memory for the unremoved directory is leaked.

Cleanup the directories under such failures.

Link: https://lkml.kernel.org/r/20251225023043.18579-4-sj@kernel.org
Fixes: 1b32234ab087 ("mm/damon/sysfs: support DAMOS watermarks")
Signed-off-by: SeongJae Park <sj@kernel.org>
Cc: chongjiapeng <jiapeng.chong@linux.alibaba.com>
Cc: <stable@vger.kernel.org> # 5.18.x
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

authored by

SeongJae Park and committed by
Andrew Morton
dc7e1d75 9814cc83

+3 -2
+3 -2
mm/damon/sysfs-schemes.c
··· 2158 2158 goto put_dests_out; 2159 2159 err = damon_sysfs_scheme_set_watermarks(scheme); 2160 2160 if (err) 2161 - goto put_quotas_access_pattern_out; 2161 + goto rmdir_put_quotas_access_pattern_out; 2162 2162 err = damos_sysfs_set_filter_dirs(scheme); 2163 2163 if (err) 2164 2164 goto put_watermarks_quotas_access_pattern_out; ··· 2183 2183 put_watermarks_quotas_access_pattern_out: 2184 2184 kobject_put(&scheme->watermarks->kobj); 2185 2185 scheme->watermarks = NULL; 2186 - put_quotas_access_pattern_out: 2186 + rmdir_put_quotas_access_pattern_out: 2187 + damon_sysfs_quotas_rm_dirs(scheme->quotas); 2187 2188 kobject_put(&scheme->quotas->kobj); 2188 2189 scheme->quotas = NULL; 2189 2190 put_dests_out: