From: Scott James Remnant Date: Mon, 23 Feb 2009 17:21:24 +0000 (+0000) Subject: Cleanup a little. X-Git-Tag: 174~1161 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=03e0170db3ef69c70db7cd74e6689c7b78c91c3d;p=systemd 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. --- diff --git a/udev/udev-watch.c b/udev/udev-watch.c index 24688c3b..33b493d5 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 50205f1e..27e64dae 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);