+ /* see if another device wants this symlink */
+ if (udev_db_lookup_name(name_loop->name, devpath, sizeof(devpath)) == 0) {
+ struct udevice *old;
+
+ info("found overwritten symlink '%s' of '%s'", name_loop->name, devpath);
+ old = udev_device_init();
+ if (old != NULL) {
+ if (udev_db_get_device(old, devpath) == 0) {
+ char slink[PATH_SIZE];
+ char node[PATH_SIZE];
+
+ strlcpy(slink, udev_root, sizeof(slink));
+ strlcat(slink, "/", sizeof(slink));
+ strlcat(slink, name_loop->name, sizeof(slink));
+ strlcpy(node, udev_root, sizeof(node));
+ strlcat(node, "/", sizeof(node));
+ strlcat(node, old->name, sizeof(node));
+ info("restore symlink '%s' to '%s'", slink, node);
+ if (!udev->test_run)
+ node_symlink(node, slink);
+ }
+ udev_device_cleanup(old);
+ }