]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udev: drop trivial wrapper for udev_watch_begin()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 25 Oct 2022 21:07:30 +0000 (06:07 +0900)
committerLuca Boccassi <luca.boccassi@gmail.com>
Mon, 31 Oct 2022 20:12:27 +0000 (21:12 +0100)
src/udev/udev-event.c
src/udev/udev-event.h
src/udev/udev-watch.c
src/udev/udevd.c

index 454139c8820b129260d9e053c18f7064934f4bb2..30326e4d1cc09a1d558366de54afdbad450c60a5 100644 (file)
@@ -1134,24 +1134,3 @@ void udev_event_execute_run(UdevEvent *event, usec_t timeout_usec, int timeout_s
                 }
         }
 }
-
-void udev_event_process_inotify_watch(UdevEvent *event, int inotify_fd) {
-        sd_device *dev;
-        int r;
-
-        assert(event);
-        assert(inotify_fd >= 0);
-
-        dev = ASSERT_PTR(event->dev);
-
-        if (!event->inotify_watch)
-                return;
-
-        if (device_for_action(dev, SD_DEVICE_REMOVE))
-                return;
-
-        r = udev_watch_begin(inotify_fd, dev);
-        if (r < 0) /* The device may be already removed, downgrade log level in that case. */
-                log_device_full_errno(dev, r == -ENOENT ? LOG_DEBUG : LOG_WARNING, r,
-                                      "Failed to add inotify watch, ignoring: %m");
-}
index 74d065ce23a665537d062bb1e2eaa5c3aa9cdd79..6d823331aa1ad85f8409295c1563fc48b22eada0 100644 (file)
@@ -76,7 +76,6 @@ int udev_event_execute_rules(
                 Hashmap *properties_list,
                 UdevRules *rules);
 void udev_event_execute_run(UdevEvent *event, usec_t timeout_usec, int timeout_signal);
-void udev_event_process_inotify_watch(UdevEvent *event, int inotify_fd);
 
 static inline usec_t udev_warn_timeout(usec_t timeout_usec) {
         return DIV_ROUND_UP(timeout_usec, 3);
index abd1d8fea506964b6b1c0aeceb60c6e258eb1ad4..6bb013c094f8452722d6d30d28f3b7262296a207 100644 (file)
@@ -17,6 +17,7 @@
 #include "rm-rf.h"
 #include "stdio-util.h"
 #include "string-util.h"
+#include "udev-util.h"
 #include "udev-watch.h"
 
 int device_new_from_watch_handle_at(sd_device **ret, int dirfd, int wd) {
@@ -180,6 +181,9 @@ int udev_watch_begin(int inotify_fd, sd_device *dev) {
         assert(inotify_fd >= 0);
         assert(dev);
 
+        if (device_for_action(dev, SD_DEVICE_REMOVE))
+                return 0;
+
         r = sd_device_get_devname(dev, &devnode);
         if (r < 0)
                 return log_device_debug_errno(dev, r, "Failed to get device node: %m");
index e3a2742733e22abfa5995b9b5b02c8051446f973..eb15b250d56f30e1d787f890d257d78b1aa847c2 100644 (file)
@@ -642,7 +642,11 @@ static int worker_process_device(Manager *manager, sd_device *dev) {
                 /* in case rtnl was initialized */
                 manager->rtnl = sd_netlink_ref(udev_event->rtnl);
 
-        udev_event_process_inotify_watch(udev_event, manager->inotify_fd);
+        if (udev_event->inotify_watch) {
+                r = udev_watch_begin(manager->inotify_fd, dev);
+                if (r < 0 && r != -ENOENT) /* The device may be already removed, ignore -ENOENT. */
+                        log_device_warning_errno(dev, r, "Failed to add inotify watch, ignoring: %m");
+        }
 
         log_device_uevent(dev, "Device processed");
         return 0;