summaryrefslogtreecommitdiff
path: root/udev.h
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@vrfy.org>2007-03-18 12:51:57 +0100
committerKay Sievers <kay.sievers@vrfy.org>2007-03-18 12:51:57 +0100
commit24f0605c1fec98b77eddb880a405289b08cb5670 (patch)
tree9278532852e3c6d13234da786baca185549aca0f /udev.h
parent31de3a2ba18ffa011f5054016ccc4a500cbe0cc3 (diff)
priority based symlink handling
Symlinks can have priorities now, the priority is assigned to the device and specified with OPTIONS="link_priority=100". Devices with higher priorities overwrite the symlinks of devices with lower priorities. If the device, that currently owns the link goes away, the symlink will be removed, and recreated, pointing to the next device with the highest actual priority. This should solve the issue, that inserting an USB-stick may overwrite the /dev/disk/by-id/-link of another disk, and removes the entire link after the USB-stick is disconnected. If no priorities are specified, the new link will overwrite the current one, and if the device goes away, it will restore the old link. It should be possible to assign lower priorities to removable devices, if needed. In multipath setups, we see several devices, which all connect to the same volume, and therefore all try to create the same metadata-links. The different path-devices are combined into one device-mapper device, which also contains the same metadata. It should be possible, to assign multipath-table device-mapper devices a higher priority, so path-devices that appear and disappear, will not overwrite or delete the device-mapper device links.
Diffstat (limited to 'udev.h')
-rw-r--r--udev.h5
1 files changed, 2 insertions, 3 deletions
diff --git a/udev.h b/udev.h
index 16a107a33d..5bd0e301c6 100644
--- a/udev.h
+++ b/udev.h
@@ -118,15 +118,14 @@ extern int sysfs_resolve_link(char *path, size_t size);
/* udev_node.c */
extern int udev_node_mknod(struct udevice *udev, const char *file, dev_t devt, mode_t mode, uid_t uid, gid_t gid);
-extern int udev_node_add(struct udevice *udev, struct udevice *udev_old);
-extern void udev_node_remove_symlinks(struct udevice *udev);
+extern void udev_node_update_symlinks(struct udevice *udev, struct udevice *udev_old);
+extern int udev_node_add(struct udevice *udev);
extern int udev_node_remove(struct udevice *udev);
/* udev_db.c */
extern int udev_db_add_device(struct udevice *dev);
extern int udev_db_delete_device(struct udevice *dev);
extern int udev_db_get_device(struct udevice *udev, const char *devpath);
-extern int udev_db_lookup_name(const char *name, char *devpath, size_t len);
extern int udev_db_get_devices_by_name(const char *name, struct list_head *name_list);
extern int udev_db_get_all_entries(struct list_head *name_list);