forked from pool/systemd
55 lines
2.1 KiB
Diff
55 lines
2.1 KiB
Diff
From b081b27e1433cdc7ac72b25ae8b4db887d79187f Mon Sep 17 00:00:00 2001
|
|
From: Tom Gundersen <teg@jklm.no>
|
|
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 rules/80-net-setup-link.rules rules/80-net-setup-link.rules
|
|
index 4207694..6e411a9 100644
|
|
--- rules/80-net-setup-link.rules
|
|
+++ 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 src/udev/udev-event.c src/udev/udev-event.c
|
|
index 00cd6d4..18b92ca 100644
|
|
--- src/udev/udev-event.c
|
|
+++ 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 */
|
|
--
|
|
1.7.9.2
|
|
|