From b081b27e1433cdc7ac72b25ae8b4db887d79187f Mon Sep 17 00:00:00 2001 From: Tom Gundersen Date: Tue, 9 Sep 2014 12:23:19 +0200 Subject: [PATCH] udev: import the full db on MOVE events for devices without dev_t --- rules/80-net-setup-link.rules | 2 -- src/udev/udev-event.c | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/rules/80-net-setup-link.rules b/rules/80-net-setup-link.rules index 420769497..6e411a91f 100644 --- a/rules/80-net-setup-link.rules +++ b/rules/80-net-setup-link.rules @@ -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" diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c index 00cd6d47d..18b92ca42 100644 --- a/src/udev/udev-event.c +++ b/src/udev/udev-event.c @@ -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 */ -- 2.30.2