diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-03-11 19:41:52 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-04-30 19:32:14 +0900 |
commit | 5e0d05106747d2ee25ce19a51ed8a5669ea93bf9 (patch) | |
tree | 6bc1e7f25171d87b10abd64bcd191e04dba5f7cf /src/udev | |
parent | 4956f220a12ba9c00dcdfdc2273e98b71ff33bae (diff) | |
download | systemd-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.c | 11 | ||||
-rw-r--r-- | src/udev/udev-watch.c | 3 |
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; |