From: Yu Watanabe Date: Sat, 27 Aug 2022 15:31:13 +0000 (+0900) Subject: udevadm-settle: make failure in udev_ctrl_new() critical X-Git-Tag: v252-rc1~295^2~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9786884027129d4de4463208f5c2bd1b97d540c;p=thirdparty%2Fsystemd.git udevadm-settle: make failure in udev_ctrl_new() critical It should not fail in general. --- diff --git a/src/udev/udevadm-settle.c b/src/udev/udevadm-settle.c index 2404442fd76..50972847f25 100644 --- a/src/udev/udevadm-settle.c +++ b/src/udev/udevadm-settle.c @@ -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();