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.
if (id == NULL)
return -1;
strscpyl(filename, sizeof(filename), "/run/udev/data/", id, NULL);
if (id == NULL)
return -1;
strscpyl(filename, sizeof(filename), "/run/udev/data/", id, NULL);
unlink(filename);
return 0;
}
unlink(filename);
return 0;
}
return;
if (streq(udev_device_get_action(dev), "remove")) {
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);
if (major(udev_device_get_devnum(dev)) != 0)
udev_watch_end(event->udev, dev);
if (major(udev_device_get_devnum(dev)) != 0)
udev_node_remove(dev);
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) {
} else {
event->dev_db = udev_device_shallow_clone(dev);
if (event->dev_db != NULL) {