]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
core/device: check that no unit is ready and not simultaneously
authorYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 20 Sep 2022 18:30:11 +0000 (03:30 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 20 Sep 2022 20:58:40 +0000 (05:58 +0900)
This should not happen, just for safety.

src/core/device.c

index 21dc5890fc5a2d18c96c4c8354b468b540e6063c..b3cf77d50c601216748e74f27e11d0d8593783b5 100644 (file)
@@ -903,6 +903,13 @@ static int device_setup_units(Manager *m, sd_device *dev, Set **ready_units, Set
 
         /* Next, add/update additional .device units point to aliases and symlinks. */
         (void) device_setup_extra_units(m, dev, ready_units, not_ready_units);
+
+        /* Safety check: no unit should be in ready_units and not_ready_units simultaneously. */
+        Unit *u;
+        SET_FOREACH(u, *not_ready_units)
+                if (set_remove(*ready_units, u))
+                        log_unit_error(u, "Cannot active and deactive simultaneously. Deactivating.");
+
         return 0;
 }