summaryrefslogtreecommitdiff
path: root/src/udev
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-03-06 18:22:35 +0100
committerTom Gundersen <teg@jklm.no>2015-03-12 12:03:50 +0100
commit3c0bab4aaf70b2383aa4cbabf6059c48744e8960 (patch)
tree1a287bcd642ce7a04959ca79b222c2a91debcdea /src/udev
parent1cd0a77022a4da17d1274f8f776b63e72c99fb05 (diff)
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.
Diffstat (limited to 'src/udev')
-rw-r--r--src/udev/udev-event.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c
index b96cf737f5..4ca73d3dbf 100644
--- a/src/udev/udev-event.c
+++ b/src/udev/udev-event.c
@@ -793,10 +793,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);
@@ -807,6 +803,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) {