Skip to content

Commit

Permalink
udev: drop trivial wrapper for udev_watch_begin()
Browse files Browse the repository at this point in the history
  • Loading branch information
yuwata authored and d-hatayama committed Feb 15, 2023
1 parent 25443a5 commit ea7ce6a
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 23 deletions.
21 changes: 0 additions & 21 deletions src/udev/udev-event.c
Original file line number Diff line number Diff line change
Expand Up @@ -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");
}
1 change: 0 additions & 1 deletion src/udev/udev-event.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
4 changes: 4 additions & 0 deletions src/udev/udev-watch.c
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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");
Expand Down
6 changes: 5 additions & 1 deletion src/udev/udevd.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down

0 comments on commit ea7ce6a

Please sign in to comment.