chiark / gitweb /
libudev: introduce udev_device_properties_copy()
[elogind.git] / src / udev / udev-event.c
index e5a5175df9181bf3a9ade020b9e3df7cf84b6c7f..b96cf737f5bd3015b05236398e2fabb8622e2791 100644 (file)
@@ -793,7 +793,7 @@ void udev_event_execute_rules(struct udev_event *event,
                 return;
 
         if (streq(udev_device_get_action(dev), "remove")) {
-                udev_device_read_db(dev, NULL);
+                udev_device_read_db(dev);
                 udev_device_delete_db(dev);
                 udev_device_tag_index(dev, NULL, false);
 
@@ -810,7 +810,7 @@ void udev_event_execute_rules(struct udev_event *event,
         } else {
                 event->dev_db = udev_device_shallow_clone(dev);
                 if (event->dev_db != NULL) {
-                        udev_device_read_db(event->dev_db, NULL);
+                        udev_device_read_db(event->dev_db);
                         udev_device_set_info_loaded(event->dev_db);
 
                         /* disable watch during event processing */
@@ -819,20 +819,8 @@ void udev_event_execute_rules(struct udev_event *event,
                 }
 
                 if (major(udev_device_get_devnum(dev)) == 0 &&
-                    streq(udev_device_get_action(dev), "move")) {
-                        struct udev_list_entry *entry;
-
-                        for ((entry = udev_device_get_properties_list_entry(event->dev_db)); entry; entry = udev_list_entry_get_next(entry)) {
-                                const char *key, *value;
-                                struct udev_list_entry *property;
-
-                                key = udev_list_entry_get_name(entry);
-                                value = udev_list_entry_get_value(entry);
-
-                                property = udev_device_add_property(dev, key, value);
-                                udev_list_entry_set_num(property, true);
-                        }
-                }
+                    streq(udev_device_get_action(dev), "move"))
+                        udev_device_copy_properties(dev, event->dev_db);
 
                 udev_rules_apply_to_event(rules, event,
                                           timeout_usec, timeout_warn_usec,