]> git.ipfire.org Git - thirdparty/util-linux.git/commitdiff
lsfd: refactor code calling collect_outofbox_files
authorMasatake YAMATO <yamato@redhat.com>
Fri, 16 Apr 2021 22:38:48 +0000 (07:38 +0900)
committerKarel Zak <kzak@redhat.com>
Wed, 6 Oct 2021 09:01:53 +0000 (11:01 +0200)
misc-utils/lsfd.c

index d580e4aed7828c00d2f9ad8623c9e829a518ba91..85227fd4e486db8c2c0c4c536dd77b7864f2fa0a 100644 (file)
@@ -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;