mirror of
https://github.com/AuxXxilium/eudev.git
synced 2025-02-20 08:37:55 +07:00
udevd: event - make db loading lazy in REMOVE event handling
We were explicitly eagerly loading the db, then deletenig the backing file and then processing the rules/symlinks. Instead we delete the backnig db file as the last step and let the db loading be lazy as everywhere else. This may save us a bit of work in casese where the db is not needed, but more importantly it hides some implementation details of libudev-device form udevd. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit is contained in:
parent
87a58f2043
commit
93d2bf9fcb
@ -183,6 +183,7 @@ int udev_device_delete_db(struct udev_device *udev_device)
|
||||
if (id == NULL)
|
||||
return -1;
|
||||
strscpyl(filename, sizeof(filename), "/run/udev/data/", id, NULL);
|
||||
|
||||
unlink(filename);
|
||||
return 0;
|
||||
}
|
||||
|
@ -811,10 +811,6 @@ void udev_event_execute_rules(struct udev_event *event,
|
||||
return;
|
||||
|
||||
if (streq(udev_device_get_action(dev), "remove")) {
|
||||
udev_device_read_db(dev);
|
||||
udev_device_delete_db(dev);
|
||||
udev_device_tag_index(dev, NULL, false);
|
||||
|
||||
if (major(udev_device_get_devnum(dev)) != 0)
|
||||
udev_watch_end(event->udev, dev);
|
||||
|
||||
@ -825,6 +821,9 @@ void udev_event_execute_rules(struct udev_event *event,
|
||||
|
||||
if (major(udev_device_get_devnum(dev)) != 0)
|
||||
udev_node_remove(dev);
|
||||
|
||||
udev_device_delete_db(dev);
|
||||
udev_device_tag_index(dev, NULL, false);
|
||||
} else {
|
||||
event->dev_db = udev_device_shallow_clone(dev);
|
||||
if (event->dev_db != NULL) {
|
||||
|
Loading…
Reference in New Issue
Block a user