- if (event->tmp_node != NULL) {
- dbg(event->udev, "cleanup temporary device node\n");
- util_unlink_secure(event->udev, event->tmp_node);
- free(event->tmp_node);
- event->tmp_node = NULL;
- }
-
- if (event->ignore_device) {
- info(event->udev, "device event will be ignored\n");
- delete_kdevnode = 1;
- goto exit_add;
- }
-
- if (event->name != NULL && event->name[0] == '\0') {
- info(event->udev, "device node creation suppressed\n");
- delete_kdevnode = 1;
- goto exit_add;
- }
-
- /* if rule given name disagrees with kernel node name, delete kernel node */
- if (event->name != NULL && udev_device_get_knodename(dev) != NULL) {
- if (strcmp(event->name, udev_device_get_knodename(dev)) != 0)
- delete_kdevnode = 1;
- }
-
- /* no rule, use kernel provided name */
- if (event->name == NULL) {
- if (udev_device_get_knodename(dev) != NULL) {
- event->name = strdup(udev_device_get_knodename(dev));
- info(event->udev, "no node name set, will use kernel supplied name '%s'\n", event->name);
- } else {
- event->name = strdup(udev_device_get_sysname(event->dev));
- info(event->udev, "no node name set, will use device name '%s'\n", event->name);
- }
- }
-
- /* something went wrong */
- if (event->name == NULL) {
- err(event->udev, "no node name for '%s'\n", udev_device_get_sysname(event->dev));
- goto exit_add;
- }
-
- /* set device node name */
- util_strscpyl(filename, sizeof(filename), udev_get_dev_path(event->udev), "/", event->name, NULL);
- udev_device_set_devnode(dev, filename);