]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
pid1: rewrite check in ignore_proc() to not check condition twice
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sun, 29 Jan 2017 02:09:08 +0000 (21:09 -0500)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 31 Jan 2017 05:49:53 +0000 (00:49 -0500)
It's harmless, but it seems nicer to evaluate a condition just a single time.

src/core/killall.c

index b3aa22adc55d7af5a5d882e9fc1240d65f066fc8..7a9df546eee9303483286db7a398878934d4a55f 100644 (file)
@@ -66,29 +66,26 @@ static bool ignore_proc(pid_t pid, bool warn_rootfs) {
         if (count <= 0)
                 return true;
 
-        /* Processes with argv[0][0] = '@' we ignore from the killing
-         * spree.
+        /* Processes with argv[0][0] = '@' we ignore from the killing spree.
          *
          * http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons */
-        if (c == '@' && warn_rootfs) {
-                _cleanup_free_ char *comm = NULL;
+        if (c != '@')
+                return false;
 
-                r = pid_from_same_root_fs(pid);
-                if (r < 0)
-                        return true;
+        if (warn_rootfs &&
+            pid_from_same_root_fs(pid) == 0) {
+
+                _cleanup_free_ char *comm = NULL;
 
                 get_process_comm(pid, &comm);
 
-                if (r)
-                        log_notice("Process " PID_FMT " (%s) has been marked to be excluded from killing. It is "
-                                   "running from the root file system, and thus likely to block re-mounting of the "
-                                   "root file system to read-only. Please consider moving it into an initrd file "
-                                   "system instead.", pid, strna(comm));
-                return true;
-        } else if (c == '@')
-                return true;
+                log_notice("Process " PID_FMT " (%s) has been marked to be excluded from killing. It is "
+                           "running from the root file system, and thus likely to block re-mounting of the "
+                           "root file system to read-only. Please consider moving it into an initrd file "
+                           "system instead.", pid, strna(comm));
+        }
 
-        return false;
+        return true;
 }
 
 static void wait_for_children(Set *pids, sigset_t *mask) {