summaryrefslogtreecommitdiff
path: root/src/udev
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-03-11 19:41:52 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-04-30 19:32:14 +0900
commit5e0d05106747d2ee25ce19a51ed8a5669ea93bf9 (patch)
tree6bc1e7f25171d87b10abd64bcd191e04dba5f7cf /src/udev
parent4956f220a12ba9c00dcdfdc2273e98b71ff33bae (diff)
downloadsystemd-5e0d05106747d2ee25ce19a51ed8a5669ea93bf9.tar.gz
udev: make udev_watch_end() noop when device does not have devname
Diffstat (limited to 'src/udev')
-rw-r--r--src/udev/udev-event.c11
-rw-r--r--src/udev/udev-watch.c3
2 files changed, 6 insertions, 8 deletions
diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
index f4dbcef959..c613916d18 100644
--- a/src/udev/udev-event.c
+++ b/src/udev/udev-event.c
@@ -934,8 +934,7 @@ static int event_execute_rules_on_remove(
if (r < 0)
log_device_debug_errno(dev, r, "Failed to delete database under /run/udev/data/, ignoring: %m");
- if (sd_device_get_devnum(dev, NULL) >= 0)
- (void) udev_watch_end(inotify_fd, dev);
+ (void) udev_watch_end(inotify_fd, dev);
r = udev_rules_apply_to_event(rules, event, timeout_usec, timeout_signal, properties_list);
@@ -1006,9 +1005,8 @@ int udev_event_execute_rules(
if (r < 0)
log_device_warning_errno(dev, r, "Failed to copy all tags from old database entry, ignoring: %m");
- if (sd_device_get_devnum(dev, NULL) >= 0)
- /* Disable watch during event processing. */
- (void) udev_watch_end(inotify_fd, event->dev_db_clone);
+ /* Disable watch during event processing. */
+ (void) udev_watch_end(inotify_fd, event->dev_db_clone);
if (action == SD_DEVICE_MOVE) {
r = udev_event_on_move(event->dev);
@@ -1097,9 +1095,6 @@ int udev_event_process_inotify_watch(UdevEvent *event, int inotify_fd) {
if (device_for_action(dev, SD_DEVICE_REMOVE))
return 0;
- if (sd_device_get_devname(dev, NULL) < 0)
- return 0;
-
if (!event->inotify_watch) {
(void) udev_watch_end(inotify_fd, dev);
return 0;
diff --git a/src/udev/udev-watch.c b/src/udev/udev-watch.c
index dca843e3f1..f5085107be 100644
--- a/src/udev/udev-watch.c
+++ b/src/udev/udev-watch.c
@@ -112,6 +112,9 @@ int udev_watch_end(int inotify_fd, sd_device *dev) {
if (inotify_fd < 0)
return 0;
+ if (sd_device_get_devname(dev, NULL) < 0)
+ return 0;
+
r = device_get_watch_handle(dev, &wd);
if (r == -ENOENT)
return 0;