]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
shutdown: introduce init_watchdog()
authorFranck Bui <fbui@suse.com>
Wed, 15 Sep 2021 07:13:12 +0000 (09:13 +0200)
committerFranck Bui <fbui@suse.com>
Wed, 15 Sep 2021 10:14:53 +0000 (12:14 +0200)
No functional change.

src/shutdown/shutdown.c

index 903977bcb14c597d2eb6219e3030b0750c1098cd..7ad9930677d2aa39a36d5ddd6ad683cc0be977f6 100644 (file)
@@ -307,10 +307,33 @@ static void bump_sysctl_printk_log_level(int min_level) {
                 log_debug_errno(r, "Failed to bump kernel.printk to %i: %m", min_level + 1);
 }
 
+static void init_watchdog(void) {
+        const char *s;
+        int r;
+
+        s = getenv("WATCHDOG_DEVICE");
+        if (s) {
+                r = watchdog_set_device(s);
+                if (r < 0)
+                        log_warning_errno(r, "Failed to set watchdog device to %s, ignoring: %m", s);
+        }
+
+        s = getenv("WATCHDOG_USEC");
+        if (s) {
+                usec_t usec;
+
+                r = safe_atou64(s, &usec);
+                if (r < 0)
+                        log_warning_errno(r, "Failed to parse watchdog timeout '%s', ignoring: %m", s);
+                else
+                        (void) watchdog_setup(usec);
+        }
+}
+
 int main(int argc, char *argv[]) {
         bool need_umount, need_swapoff, need_loop_detach, need_dm_detach, need_md_detach, in_container, can_initrd;
         _cleanup_free_ char *cgroup = NULL;
-        char *arguments[3], *watchdog_device, *watchdog_usec;
+        char *arguments[3];
         int cmd, r, umount_log_level = LOG_INFO;
         static const char* const dirs[] = {SYSTEM_SHUTDOWN_PATH, NULL};
 
@@ -370,25 +393,7 @@ int main(int argc, char *argv[]) {
                    LOG_TARGET_KMSG))
                 bump_sysctl_printk_log_level(LOG_WARNING);
 
-        watchdog_device = getenv("WATCHDOG_DEVICE");
-        if (watchdog_device) {
-                r = watchdog_set_device(watchdog_device);
-                if (r < 0)
-                        log_warning_errno(r, "Failed to set watchdog device to %s, ignoring: %m",
-                                          watchdog_device);
-        }
-
-        watchdog_usec = getenv("WATCHDOG_USEC");
-        if (watchdog_usec) {
-                usec_t usec;
-
-                r = safe_atou64(watchdog_usec, &usec);
-                if (r < 0)
-                        log_warning_errno(r, "Failed to parse watchdog timeout '%s', ignoring: %m",
-                                          watchdog_usec);
-                else
-                        (void) watchdog_setup(usec);
-        }
+        init_watchdog();
 
         /* Lock us into memory */
         (void) mlockall(MCL_CURRENT|MCL_FUTURE);