1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-24 21:34:08 +03:00

timedate: handle more nicely if something or somebody keeps open /dev/rtc and thus blocks out everybody else

chrony is appears to keep the RTC open continuously these days which is
a bad idea, and /dev/rtc is a single-user device, which is a bad idea
too. Together both bad ideas mean that nobody else can access the RTC
anymore. That's something to fix, but in the meantime we should handle
this more gracefully.
This commit is contained in:
Lennart Poettering 2013-10-29 19:31:41 +01:00
parent 29f8d1f21a
commit 88e262b667

View File

@ -467,12 +467,14 @@ static int property_get_rtc_time(
zero(tm);
r = hwclock_get_time(&tm);
if (r < 0) {
if (r == -EBUSY) {
log_warning("/dev/rtc is busy, is somebody keeping it open continously? That's not a good idea... Returning a bogus RTC timestamp.");
t = 0;
} else if (r < 0) {
sd_bus_error_set_errnof(error, -r, "Failed to read RTC: %s", strerror(-r));
return r;
}
t = (usec_t) mktime(&tm) * USEC_PER_SEC;
} else
t = (usec_t) mktime(&tm) * USEC_PER_SEC;
r = sd_bus_message_append(reply, "t", t);
if (r < 0)