]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core: merge a few if blocks
authorLennart Poettering <lennart@poettering.net>
Wed, 19 Aug 2020 15:45:33 +0000 (17:45 +0200)
committerLennart Poettering <lennart@poettering.net>
Wed, 19 Aug 2020 16:06:12 +0000 (18:06 +0200)
arg_system == true and getpid() == 1 hold under the very same condition
this early in the main() function (this only changes later when we start
parsing command lines, where arg_system = true is set if users invoke us
in test mode even when getpid() != 1.

Hence, let's simplify things, and merge a couple of if branches and not
pretend they were orthogonal.

src/core/main.c

index 4a376976e94f987c416a60fe26e6c3f48bb8d142..8d53c0bf85988964731fa45998dc84d58ad3ab34 100644 (file)
@@ -2653,22 +2653,6 @@ int main(int argc, char *argv[]) {
                         goto finish;
                 }
 
-        } else {
-                /* Running as user instance */
-                arg_system = false;
-                log_set_target(LOG_TARGET_AUTO);
-                log_open();
-
-                /* clear the kernel timestamp, because we are not PID 1 */
-                kernel_timestamp = DUAL_TIMESTAMP_NULL;
-
-                if (mac_selinux_init() < 0) {
-                        error_message = "Failed to initialize SELinux support";
-                        goto finish;
-                }
-        }
-
-        if (arg_system) {
                 /* Try to figure out if we can use colors with the console. No need to do that for user instances since
                  * they never log into the console. */
                 log_show_color(colors_enabled());
@@ -2676,15 +2660,12 @@ int main(int argc, char *argv[]) {
                 r = make_null_stdio();
                 if (r < 0)
                         log_warning_errno(r, "Failed to redirect standard streams to /dev/null, ignoring: %m");
-        }
-
-        /* Mount /proc, /sys and friends, so that /proc/cmdline and /proc/$PID/fd is available. */
-        if (getpid_cached() == 1) {
 
                 /* Load the kernel modules early. */
                 if (!skip_setup)
                         kmod_setup();
 
+                /* Mount /proc, /sys and friends, so that /proc/cmdline and /proc/$PID/fd is available. */
                 r = mount_setup(loaded_policy, skip_setup);
                 if (r < 0) {
                         error_message = "Failed to mount API filesystems";
@@ -2697,6 +2678,19 @@ int main(int argc, char *argv[]) {
                 /* Cache command-line options passed from EFI variables */
                 if (!skip_setup)
                         (void) cache_efi_options_variable();
+        } else {
+                /* Running as user instance */
+                arg_system = false;
+                log_set_target(LOG_TARGET_AUTO);
+                log_open();
+
+                /* clear the kernel timestamp, because we are not PID 1 */
+                kernel_timestamp = DUAL_TIMESTAMP_NULL;
+
+                if (mac_selinux_init() < 0) {
+                        error_message = "Failed to initialize SELinux support";
+                        goto finish;
+                }
         }
 
         /* Save the original RLIMIT_NOFILE/RLIMIT_MEMLOCK so that we can reset it later when