diff options
author | Tom Gundersen <teg@jklm.no> | 2014-09-09 12:23:19 +0200 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2014-09-10 21:30:25 -0400 |
commit | 405bccb70b51075261b140ad7183cc72a2b1a82e (patch) | |
tree | b8614f8b1bb20965cdf625614ab4b4e4a8865d0e /src/udev/udev-event.c | |
parent | 89f2848567ec16e019db4309cef0ebcd9a6c5196 (diff) |
udev: import the full db on MOVE events for devices without dev_t
Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
Diffstat (limited to 'src/udev/udev-event.c')
-rw-r--r-- | src/udev/udev-event.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/udev/udev-event.c b/src/udev/udev-event.c index 3b12350d4a..b2532d01ad 100644 --- a/src/udev/udev-event.c +++ b/src/udev/udev-event.c @@ -863,6 +863,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 */ |