]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/device: avoid bogus errno use and invert ratelimit_test()
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 24 Apr 2018 11:50:46 +0000 (13:50 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 24 Apr 2018 12:10:27 +0000 (14:10 +0200)
I'm not sure if I understand the original code. AFAICS, errno does not
have to be set at all in this callback.

ratelimit_test() returns positive if we are under limit. The code would only
log if the condition happened very often, which I assume is not inteded, and
this check was supposed to prevent too much logging.

src/core/device.c

index 12dccdb975c769abda651a7c12022e641eaa9bf6..296f763f87f3367bbc959346c17d415fe10045a3 100644 (file)
@@ -782,8 +782,8 @@ static int device_dispatch_io(sd_event_source *source, int fd, uint32_t revents,
         if (revents != EPOLLIN) {
                 static RATELIMIT_DEFINE(limit, 10*USEC_PER_SEC, 5);
 
-                if (!ratelimit_test(&limit))
-                        log_error_errno(errno, "Failed to get udev event: %m");
+                if (ratelimit_test(&limit))
+                        log_warning("Failed to get udev event");
                 if (!(revents & EPOLLIN))
                         return 0;
         }