chiark / gitweb /
unit: check for unneeded dependencies even when unit stop was expected
[elogind.git] / src / logind.c
index b84242e1ed74d95159a626730bcaed5671ba9ac7..4633a5ef29109c9cf51538dfdc99deb5de96a4fb 100644 (file)
@@ -274,8 +274,7 @@ int manager_process_seat_device(Manager *m, struct udev_device *d) {
 
         if (streq_ptr(udev_device_get_action(d), "remove")) {
 
-                /* FIXME: use syspath instead of sysname here, as soon as fb driver is fixed */
-                device = hashmap_get(m->devices, udev_device_get_sysname(d));
+                device = hashmap_get(m->devices, udev_device_get_syspath(d));
                 if (!device)
                         return 0;
 
@@ -295,7 +294,7 @@ int manager_process_seat_device(Manager *m, struct udev_device *d) {
                         return 0;
                 }
 
-                r = manager_add_device(m, udev_device_get_sysname(d), &device);
+                r = manager_add_device(m, udev_device_get_syspath(d), &device);
                 if (r < 0)
                         return r;
 
@@ -414,6 +413,7 @@ static int manager_enumerate_users_from_cgroup(Manager *m) {
         int r = 0;
         char *name;
         DIR *d;
+        int k;
 
         r = cg_enumerate_subgroups(SYSTEMD_CGROUP_CONTROLLER, m->cgroup_path, &d);
         if (r < 0) {
@@ -424,9 +424,8 @@ static int manager_enumerate_users_from_cgroup(Manager *m) {
                 return r;
         }
 
-        while ((r = cg_read_subgroup(d, &name)) > 0) {
+        while ((k = cg_read_subgroup(d, &name)) > 0) {
                 User *user;
-                int k;
 
                 k = manager_add_user_by_name(m, name, &user);
                 if (k < 0) {
@@ -447,6 +446,9 @@ static int manager_enumerate_users_from_cgroup(Manager *m) {
                 free(name);
         }
 
+        if (r >= 0 && k < 0)
+                r = k;
+
         closedir(d);
 
         return r;