Commit ac55b38f authored by Liu Ye's avatar Liu Ye Committed by Andrew Morton
Browse files

mm/shrinker: fix name consistency issue in shrinker_debugfs_rename()

After calling debugfs_change_name function, the return value should be
checked and the old name restored.  If debugfs_change_name fails, the new
name memory should be freed.  The effect is that the shrinker->name is not
consistent with the name displayed in debugfs.

Link: https://lkml.kernel.org/r/20250305071759.661055-1-liuye@kylinos.cn


Signed-off-by: default avatarLiu Ye <liuye@kylinos.cn>
Reviewed-by: default avatarMuchun Song <muchun.song@linux.dev>
Reviewed-by:Qi Zheng <zhengqi.arch@bytedance.co
Reviewed-by: default avatarRoman Gushchin <roman.gushchin@linux.dev>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Qi Zheng <zhengqi.arch@bytedance.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 9ea705a5
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -214,9 +214,13 @@ int shrinker_debugfs_rename(struct shrinker *shrinker, const char *fmt, ...)
	ret = debugfs_change_name(shrinker->debugfs_entry, "%s-%d",
			shrinker->name, shrinker->debugfs_id);

	mutex_unlock(&shrinker_mutex);

	if (ret) {
		shrinker->name = old;
		kfree_const(new);
	} else {
		kfree_const(old);
	}
	mutex_unlock(&shrinker_mutex);

	return ret;
}