udevadm-settle: make failure in udev_ctrl_new() critical

It should not fail in general.
This commit is contained in:
Yu Watanabe
2022-08-29 13:40:54 +09:00
parent 6ecccf60d2
commit f978688402
+13 -10
View File
@@ -176,21 +176,24 @@ int settle_main(int argc, char *argv[], void *userdata) {
deadline = now(CLOCK_MONOTONIC) + arg_timeout;
/* guarantee that the udev daemon isn't pre-processing */
if (getuid() == 0) {
_cleanup_(udev_ctrl_unrefp) UdevCtrl *uctrl = NULL;
if (udev_ctrl_new(&uctrl) >= 0) {
r = udev_ctrl_send_ping(uctrl);
if (r < 0) {
log_debug_errno(r, "Failed to connect to udev daemon: %m");
return 0;
}
/* guarantee that the udev daemon isn't pre-processing */
r = udev_ctrl_wait(uctrl, MAX(5 * USEC_PER_SEC, arg_timeout));
if (r < 0)
return log_error_errno(r, "Failed to wait for daemon to reply: %m");
r = udev_ctrl_new(&uctrl);
if (r < 0)
return log_error_errno(r, "Failed to create control socket for udev daemon: %m");
r = udev_ctrl_send_ping(uctrl);
if (r < 0) {
log_debug_errno(r, "Failed to connect to udev daemon, ignoring: %m");
return 0;
}
r = udev_ctrl_wait(uctrl, MAX(5 * USEC_PER_SEC, arg_timeout));
if (r < 0)
return log_error_errno(r, "Failed to wait for daemon to reply: %m");
}
fd = udev_queue_init();