X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=udev%2Fudev-node.c;h=100ca92903ef2baf41ff36b6a5f2326176221325;hp=ae343eb2dae1fda0d4b9459848f0325b500400c8;hb=0c057e9c75f8acad2cd89b8ad8b9ec09f2c615af;hpb=5755d586e17d7397ddf255e4483e01039cb38d1d diff --git a/udev/udev-node.c b/udev/udev-node.c index ae343eb2d..100ca9290 100644 --- a/udev/udev-node.c +++ b/udev/udev-node.c @@ -367,23 +367,30 @@ void udev_node_update_old_links(struct udev_device *dev, struct udev_device *dev /* update possible left-over symlinks */ udev_list_entry_foreach(list_entry, udev_device_get_devlinks_list_entry(dev_old)) { + const char *name = udev_list_entry_get_name(list_entry); struct udev_list_entry *list_entry_current; int found; + /* check if old link name is now our node name */ + if (strcmp(name, udev_device_get_devnode(dev)) == 0) + continue; + + /* check if old link name still belongs to this device */ found = 0; udev_list_entry_foreach(list_entry_current, udev_device_get_devlinks_list_entry(dev)) { - if (strcmp(udev_list_entry_get_name(list_entry_current), - udev_list_entry_get_name(list_entry)) == 0) { + const char *name_current = udev_list_entry_get_name(list_entry_current); + + if (strcmp(name, name_current) == 0) { found = 1; break; } } if (found) continue; - /* link does no longer belong to this device */ - info(udev, "update old symlink '%s' no longer belonging to '%s'\n", - udev_list_entry_get_name(list_entry), udev_device_get_devpath(dev)); - update_link(dev, udev_list_entry_get_name(list_entry), test); + + info(udev, "update old symlink '%s' no longer belonging to '%s'\n", name, udev_device_get_devpath(dev)); + name_index(udev, udev_device_get_devpath(dev), name, 0, test); + update_link(dev, name, test); } /* @@ -438,7 +445,7 @@ int udev_node_add(struct udev_device *dev, mode_t mode, uid_t uid, gid_t gid, in } } - /* add node and to name index */ + /* add node to name index */ name_index(udev, udev_device_get_devpath(dev), udev_device_get_devnode(dev), 1, test); /* create/update symlinks, add symlinks to name index */