chiark / gitweb /
udev: make set_usec_initialized() internal to libudev
[elogind.git] / src / udev / udev-event.c
index 4ca73d3dbf494327ed8211ed52083b5d9144428c..3a165b0b4fd03ec2ffffd989125da4b409c04342 100644 (file)
@@ -807,11 +807,8 @@ void udev_event_execute_rules(struct udev_event *event,
                 udev_device_delete_db(dev);
                 udev_device_tag_index(dev, NULL, false);
         } else {
-                event->dev_db = udev_device_shallow_clone(dev);
+                event->dev_db = udev_device_clone_with_db(dev);
                 if (event->dev_db != NULL) {
-                        udev_device_read_db(event->dev_db);
-                        udev_device_set_info_loaded(event->dev_db);
-
                         /* disable watch during event processing */
                         if (major(udev_device_get_devnum(dev)) != 0)
                                 udev_watch_end(event->udev, event->dev_db);
@@ -876,10 +873,7 @@ void udev_event_execute_rules(struct udev_event *event,
                 }
 
                 /* preserve old, or get new initialization timestamp */
-                if (event->dev_db != NULL && udev_device_get_usec_initialized(event->dev_db) > 0)
-                        udev_device_set_usec_initialized(event->dev, udev_device_get_usec_initialized(event->dev_db));
-                else if (udev_device_get_usec_initialized(event->dev) == 0)
-                        udev_device_set_usec_initialized(event->dev, now(CLOCK_MONOTONIC));
+                udev_device_ensure_usec_initialized(event->dev, event->dev_db);
 
                 /* (re)write database file */
                 udev_device_update_db(dev);