- if (dev_old != NULL) {
- udev_node_update_old_links(dev, dev_old, event->test);
- udev_device_unref(dev_old);
+ if (dev_old != NULL)
+ udev_node_update_old_links(dev, dev_old);
+
+ /* create new node and symlinks */
+ err = udev_node_add(dev, event->mode, event->uid, event->gid);
+exit_add:
+ if (delete_kdevnode && udev_device_get_knodename(dev) != NULL) {
+ struct stat stats;
+
+ util_strlcpy(filename, udev_get_dev_path(event->udev), sizeof(filename));
+ util_strlcat(filename, "/", sizeof(filename));
+ util_strlcat(filename, udev_device_get_knodename(dev), sizeof(filename));
+ if (stat(filename, &stats) == 0 && stats.st_rdev == udev_device_get_devnum(dev)) {
+ unlink(filename);
+ util_delete_path(event->udev, filename);
+ info(event->udev, "removed kernel created node '%s'\n", filename);
+ }