chiark / gitweb /
Cleanup a little.
[elogind.git] / udev / udev-watch.c
index 92ab90785602db9d63dd93f147ddcce9391e58b1..33b493d512f5afd60d351f9e65033c8619f7fc0c 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * Copyright (C) 2004-2008 Kay Sievers <kay.sievers@vrfy.org>
  * Copyright (C) 2009 Canonical Ltd.
+ * Copyright (C) 2009 Scott James Remnant <scott@netsplit.com>
  *
  * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -141,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);
@@ -162,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));