udev: import the full db on MOVE events for devices without dev_t

This commit is contained in:
Tom Gundersen 2014-09-09 12:23:19 +02:00
parent 72ba9f04f9
commit b081b27e14
2 changed files with 16 additions and 2 deletions

View File

@ -4,8 +4,6 @@ SUBSYSTEM!="net", GOTO="net_setup_link_end"
IMPORT{builtin}="path_id"
ACTION=="move", IMPORT{db}="ID_NET_DRIVER", IMPORT{db}="ID_NET_LINK_FILE", IMPORT{db}="ID_NET_NAME"
ACTION!="add", GOTO="net_setup_link_end"
IMPORT{builtin}="net_setup_link"

View File

@ -805,6 +805,22 @@ void udev_event_execute_rules(struct udev_event *event,
udev_watch_end(event->udev, event->dev_db);
}
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(event->dev, key, value);
udev_list_entry_set_num(property, true);
}
}
udev_rules_apply_to_event(rules, event, timeout_usec, sigmask);
/* rename a new network interface, if needed */