From: Kay Sievers Date: Tue, 11 Sep 2007 22:21:53 +0000 (+0200) Subject: ignore device node names while restoring symlinks from the stack X-Git-Tag: 174~1822 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=25c208d659cf0f8bc887a1f7c62e9d2e0c546aec;hp=554074c9ca2f1b8876176887e4656d06b870f2cd ignore device node names while restoring symlinks from the stack --- diff --git a/udev_node.c b/udev_node.c index 25eed8693..556a442a3 100644 --- a/udev_node.c +++ b/udev_node.c @@ -230,11 +230,15 @@ static int update_link(struct udevice *udev, const char *name) if (udev_db == NULL) continue; if (udev_db_get_device(udev_db, device->name) == 0) { - info("compare priority of '%s' %i > %i", - udev_db->dev->devpath, udev_db->link_priority, priority); - if (target[0] == '\0' || udev_db->link_priority > priority) { - priority = udev_db->link_priority; - strlcpy(target, udev_db->name, sizeof(target)); + if (strcmp(udev_db->name, name) == 0) { + info("'%s' is a device node of '%s', skip link update", udev_db->name, device->name); + } else { + info("compare priority of '%s' %i > %i", + udev_db->dev->devpath, udev_db->link_priority, priority); + if (target[0] == '\0' || udev_db->link_priority > priority) { + priority = udev_db->link_priority; + strlcpy(target, udev_db->name, sizeof(target)); + } } } udev_device_cleanup(udev_db); @@ -242,8 +246,8 @@ static int update_link(struct udevice *udev, const char *name) name_list_cleanup(&name_list); if (target[0] == '\0') { - err("missing target for '%s'", name); - rc = -1; + info("no current target for '%s' found", name); + rc = 1; goto out; }