From: Masatake YAMATO Date: Fri, 16 Apr 2021 22:38:48 +0000 (+0900) Subject: lsfd: refactor code calling collect_outofbox_files X-Git-Tag: v2.38-rc1~144^2~169 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1478549077eedbb20f584c88cfbfabb988c2630d;p=thirdparty%2Futil-linux.git lsfd: refactor code calling collect_outofbox_files --- diff --git a/misc-utils/lsfd.c b/misc-utils/lsfd.c index d580e4aed7..85227fd4e4 100644 --- a/misc-utils/lsfd.c +++ b/misc-utils/lsfd.c @@ -366,26 +366,23 @@ static void collect_outofbox_files(struct proc *proc, closedir(dirp); } -static void fill_proc(struct proc *proc) +static void collect_execve_files(struct proc *proc) { - INIT_LIST_HEAD(&proc->files); - - proc->command = proc_get_command_name(proc->pid); - if (!proc->command) - err(EXIT_FAILURE, _("failed to get command name")); - - - const char *classical_template = "/proc/%d"; - enum association classical_assocs[] = { ASSOC_CWD, ASSOC_EXE, ASSOC_ROOT }; - const char* classical_assoc_names[] = { + const char *execve_template = "/proc/%d"; + enum association execve_assocs[] = { ASSOC_CWD, ASSOC_EXE, ASSOC_ROOT }; + const char* execve_assoc_names[] = { [ASSOC_CWD] = "cwd", [ASSOC_EXE] = "exe", [ASSOC_ROOT] = "root", }; - collect_outofbox_files(proc, classical_template, - classical_assocs, classical_assoc_names, - ARRAY_SIZE(classical_assocs)); + collect_outofbox_files(proc, execve_template, + execve_assocs, execve_assoc_names, + ARRAY_SIZE(execve_assocs)); +} + +static void collect_namespace_files(struct proc *proc) +{ const char *namespace_template = "/proc/%d/ns"; enum association namespace_assocs[] = { ASSOC_NS_CGROUP, @@ -414,12 +411,22 @@ static void fill_proc(struct proc *proc) collect_outofbox_files(proc, namespace_template, namespace_assocs, namespace_assoc_names, ARRAY_SIZE(namespace_assocs)); +} + +static void fill_proc(struct proc *proc) +{ + INIT_LIST_HEAD(&proc->files); + proc->command = proc_get_command_name(proc->pid); + if (!proc->command) + err(EXIT_FAILURE, _("failed to get command name")); + + collect_execve_files(proc); + collect_namespace_files(proc); collect_mem_files(proc); collect_fd_files(proc); } - static void *fill_procs(void *arg) { struct list_head *procs = arg;