]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev-watch: do not try to remove invalid watch handle
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 12 Feb 2025 00:23:33 +0000 (09:23 +0900)
committerLuca Boccassi <luca.boccassi@gmail.com>
Thu, 13 Feb 2025 15:54:46 +0000 (15:54 +0000)
When a new device is processed, there should be no watch handle for
the device, hence udev_watch_clear() provides -1. Let's not try to call
inotify_rm_watch() in that case.

This should not change any behavior. Just for suppressing spurious
debugging log:
=====
(udev-worker)[3626140]: zram1: Removing watch handle -1.
=====

(cherry picked from commit b3b442062045eac61a9dd3ed73b650dfb5be0b46)

src/udev/udev-watch.c

index 9bd34af858f91e4df7438cc064cb30057c384d4a..82db39fecd78e23b56deeffb17b7dd929614f3f2 100644 (file)
@@ -161,7 +161,7 @@ static int udev_watch_clear(sd_device *dev, int dirfd, int *ret_wd) {
 
         if (ret_wd)
                 *ret_wd = wd;
-        r = 0;
+        r = 1;
 
 finalize:
         /* 5. remove symlink ID -> wd.
@@ -249,7 +249,7 @@ int udev_watch_end(int inotify_fd, sd_device *dev) {
 
         /* First, clear symlinks. */
         r = udev_watch_clear(dev, dirfd, &wd);
-        if (r < 0)
+        if (r <= 0)
                 return r;
 
         /* Then, remove inotify watch. */