chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
logind: use new udev_enumerate_add_match_parent() where applicable
[elogind.git]
/
src
/
logind-dbus.c
diff --git
a/src/logind-dbus.c
b/src/logind-dbus.c
index e0855f4cf82fc616b965335c821204189da3f86d..4321ffd90043906f4736f0de0790a7e35e569083 100644
(file)
--- a/
src/logind-dbus.c
+++ b/
src/logind-dbus.c
@@
-550,7
+550,7
@@
fail:
return r;
}
return r;
}
-static int trigger_device(Manager *m,
const char *prefix
) {
+static int trigger_device(Manager *m,
struct udev_device *d
) {
struct udev_enumerate *e;
struct udev_list_entry *first, *item;
int r;
struct udev_enumerate *e;
struct udev_list_entry *first, *item;
int r;
@@
-563,6
+563,14
@@
static int trigger_device(Manager *m, const char *prefix) {
goto finish;
}
goto finish;
}
+ if (d) {
+ if (udev_enumerate_add_match_parent(e, d) < 0) {
+ r = -EIO;
+ goto finish;
+ }
+ }
+
+
if (udev_enumerate_scan_devices(e) < 0) {
r = -EIO;
goto finish;
if (udev_enumerate_scan_devices(e) < 0) {
r = -EIO;
goto finish;
@@
-575,9
+583,6
@@
static int trigger_device(Manager *m, const char *prefix) {
p = udev_list_entry_get_name(item);
p = udev_list_entry_get_name(item);
- if (prefix && !path_startswith(p, prefix))
- continue;
-
t = strappend(p, "/uevent");
if (!t) {
r = -ENOMEM;
t = strappend(p, "/uevent");
if (!t) {
r = -ENOMEM;
@@
-637,7
+642,7
@@
static int attach_device(Manager *m, const char *seat, const char *sysfs) {
if (r < 0)
goto finish;
if (r < 0)
goto finish;
- r = trigger_device(m,
sysfs
);
+ r = trigger_device(m,
d
);
finish:
free(rule);
finish:
free(rule);