From d582e619f04d41f924861f2ff77610022dec6485 Mon Sep 17 00:00:00 2001 From: backslashxx <118538522+backslashxx@users.noreply.github.com> Date: Thu, 12 Jun 2025 15:36:08 +0700 Subject: [PATCH] kernel: minor optimization on throne tracker * Picked from https://github.com/tiann/KernelSU/pull/2633 * Add missed filp_close and don't make data_app_magic static + __read_mostly Signed-off-by: backslashxx <118538522+backslashxx@users.noreply.github.com> Signed-off-by: rsuntk --- kernel/throne_tracker.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/kernel/throne_tracker.c b/kernel/throne_tracker.c index 109daa20..fd8d0bad 100644 --- a/kernel/throne_tracker.c +++ b/kernel/throne_tracker.c @@ -201,14 +201,13 @@ FILLDIR_RETURN_TYPE my_actor(struct dir_context *ctx, const char *name, return FILLDIR_ACTOR_CONTINUE; } -static unsigned long data_app_magic __read_mostly = 0; // its not like /data/app magic changes duh - void search_manager(const char *path, int depth, struct list_head *uid_data) { int i, stop = 0; struct list_head data_path_list; INIT_LIST_HEAD(&data_path_list); INIT_LIST_HEAD(&apk_path_hash_list); + unsigned long data_app_magic = 0; // Initialize APK cache list struct apk_path_hash *pos, *n; @@ -242,12 +241,14 @@ void search_manager(const char *path, int depth, struct list_head *uid_data) } // grab magic on first folder, which is /data/app - if (unlikely(!data_app_magic)) { + if (!data_app_magic) { if (file->f_inode->i_sb->s_magic) { data_app_magic = file->f_inode->i_sb->s_magic; pr_info("%s: dir: %s got magic! 0x%lx\n", __func__, pos->dirpath, data_app_magic); - } else + } else { + filp_close(file, NULL); goto skip_iterate; + } } if (file->f_inode->i_sb->s_magic != data_app_magic) {