From 03e0170db3ef69c70db7cd74e6689c7b78c91c3d Mon Sep 17 00:00:00 2001 From: Scott James Remnant Date: Mon, 23 Feb 2009 17:21:24 +0000 Subject: [PATCH 1/1] Cleanup a little. Move some of the checks into udev_watch_begin() and udev_watch_clear() so we don't have to repeat them all the time. --- udev/udev-watch.c | 5 ++++- udev/udevd.c | 7 ++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/udev/udev-watch.c b/udev/udev-watch.c index 24688c3b1..33b493d51 100644 --- a/udev/udev-watch.c +++ b/udev/udev-watch.c @@ -142,7 +142,7 @@ void udev_watch_begin(struct udev *udev, struct udev_device *dev) const char *filename; int wd; - if (inotify_fd < 0) + if (inotify_fd < 0 || major(udev_device_get_devnum(dev)) == 0) return; wd = inotify_add_watch(inotify_fd, udev_device_get_devnode(dev), IN_CLOSE_WRITE); @@ -163,6 +163,9 @@ void udev_watch_clear(struct udev *udev, struct udev_device *dev) DIR *dir; struct dirent *ent; + if (inotify_fd < 0 || major(udev_device_get_devnum(dev)) == 0) + return; + util_strlcpy(filename, udev_get_dev_path(udev), sizeof(filename)); util_strlcat(filename, "/.udev/watch", sizeof(filename)); diff --git a/udev/udevd.c b/udev/udevd.c index 50205f1e4..27e64dae3 100644 --- a/udev/udevd.c +++ b/udev/udevd.c @@ -216,9 +216,7 @@ static void event_fork(struct udev_event *event) alarm(UDEV_EVENT_TIMEOUT); /* clear any existing udev watch on the node */ - if (inotify_fd != -1 && - major(udev_device_get_devnum(event->dev)) != 0) - udev_watch_clear(event->udev, event->dev); + udev_watch_clear(event->udev, event->dev); /* apply rules, create node, symlinks */ err = udev_event_execute_rules(event, rules); @@ -232,8 +230,7 @@ static void event_fork(struct udev_event *event) udev_event_execute_run(event); /* apply/restore inotify watch */ - if (err == 0 && event->inotify_watch && inotify_fd != -1 && - major(udev_device_get_devnum(event->dev)) != 0 && + if (err == 0 && event->inotify_watch && strcmp(udev_device_get_action(event->dev), "remove") != 0) info(event->udev, "device will be watched for changes\n"); udev_watch_begin(event->udev, event->dev); -- 2.30.2