From: Lennart Poettering Date: Tue, 22 Nov 2022 11:55:10 +0000 (+0100) Subject: homed: handle EINTR gracefully when waiting for device node X-Git-Tag: v253-rc1~458^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f3d9278f38f0a9e03ed29215f27d8ca21c1fa6a1;p=thirdparty%2Fsystemd.git homed: handle EINTR gracefully when waiting for device node --- diff --git a/src/home/homework-luks.c b/src/home/homework-luks.c index 97fb5a10510..5e1d5bbd659 100644 --- a/src/home/homework-luks.c +++ b/src/home/homework-luks.c @@ -2017,9 +2017,12 @@ static int wait_for_devlink(const char *path) { if (w >= until) return log_error_errno(SYNTHETIC_ERRNO(ETIMEDOUT), "Device link %s still hasn't shown up, giving up.", path); - r = fd_wait_for_event(inotify_fd, POLLIN, usec_sub_unsigned(until, w)); - if (r < 0) + r = fd_wait_for_event(inotify_fd, POLLIN, until - w); + if (r < 0) { + if (ERRNO_IS_TRANSIENT(r)) + continue; return log_error_errno(r, "Failed to watch inotify: %m"); + } (void) flush_fd(inotify_fd); }