Merge pull request #10392 from poettering/manager-no-inotify-fail

make sure /etc/localtime issues don't cause systemd to fail boot
This commit is contained in:
Yu Watanabe 2018-10-15 07:15:12 +09:00 committed by GitHub
commit 6cc4d59b35
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 5 deletions

View File

@ -423,10 +423,14 @@ static int manager_setup_timezone_change(Manager *m) {
r = sd_event_add_inotify(m->event, &new_event, "/etc/localtime",
IN_ATTRIB|IN_MOVE_SELF|IN_CLOSE_WRITE|IN_DONT_FOLLOW, manager_dispatch_timezone_change, m);
if (r == -ENOENT) /* If the file doesn't exist yet, subscribe to /etc instead, and wait until it is created
* either by O_CREATE or by rename() */
if (r == -ENOENT) {
/* If the file doesn't exist yet, subscribe to /etc instead, and wait until it is created either by
* O_CREATE or by rename() */
log_debug_errno(r, "/etc/localtime doesn't exist yet, watching /etc instead.");
r = sd_event_add_inotify(m->event, &new_event, "/etc",
IN_CREATE|IN_MOVED_TO|IN_ONLYDIR, manager_dispatch_timezone_change, m);
}
if (r < 0)
return log_error_errno(r, "Failed to create timezone change event source: %m");
@ -835,9 +839,7 @@ int manager_new(UnitFileScope scope, ManagerTestRunFlags test_run_flags, Manager
if (r < 0)
return r;
r = manager_setup_timezone_change(m);
if (r < 0)
return r;
(void) manager_setup_timezone_change(m);
r = manager_setup_sigchld_event_source(m);
if (r < 0)