udevadm-settle: make failure in udev_ctrl_new() critical
It should not fail in general.
This commit is contained in:
+13
-10
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user