Systemd/src
Lennart Poettering 04eb582acc core: enumerate perpetual units in a separate per-unit-type method
Previously the enumerate() callback defined for each unit type would do
two things:

1. It would create perpetual units (i.e. -.slice, system.slice, -.mount and
   init.scope)

2. It would enumerate units from /proc/self/mountinfo, /proc/swaps and
   the udev database

With this change these two parts are split into two seperate methods:
enumerate() now only does #2, while enumerate_perpetual() is responsible
for #1. Why make this change? Well, perpetual units should have a
slightly different effect that those found through enumeration: as
perpetual units should be up unconditionally, perpetually and thus never
change state, they should also not pull in deps by their state changing,
not even when the state is first set to active. Thus, their state is
generally initialized through the per-device coldplug() method in
similar  fashion to the deserialized state from a previous run would be
put into place. OTOH units found through regular enumeration should
result in state changes (and thus pull in deps due to state changes),
hence their state should be put in effect in the catchup() method
instead. Hence, given this difference, let's also separate the
functions, so that the rule is:

1. What is created in enumerate_perpetual() should be started in
   coldplug()

2. What is created in enumerate() should be started in catchup().
2018-06-07 15:29:17 +02:00
..
ac-power tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
activate tree-wide: be more careful with the type of array sizes 2018-04-27 14:29:06 +02:00
analyze core: undo the dependency inversion between unit.h and all unit types 2018-05-15 14:24:34 -04:00
ask-password tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
backlight tree-wide: drop redundant _cleanup_ macros (#8810) 2018-04-25 12:31:45 +02:00
basic util: add new write_string_filef() helper 2018-06-06 14:39:15 +02:00
binfmt Eliminate config_dirs vars which hold a static strv 2018-05-07 18:17:36 +02:00
boot efi: explicitly cast physical address to UINTN when converting to/from pointers 2018-05-31 16:10:46 +02:00
busctl string-util: rename strdash_if_empty() to empty_to_dash() 2018-05-11 01:55:46 +09:00
cgls path-util: introduce path_simplify() 2018-06-03 23:39:26 +09:00
cgroups-agent tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
cgtop path-util: introduce path_simplify() 2018-06-03 23:39:26 +09:00
core core: enumerate perpetual units in a separate per-unit-type method 2018-06-07 15:29:17 +02:00
coredump basic/log: add the log_struct terminator to macro 2018-06-04 13:46:03 +02:00
cryptsetup tree-wide: drop spurious newlines (#8764) 2018-04-19 12:13:23 +02:00
debug-generator tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
delta path-util: introduce path_simplify() 2018-06-03 23:39:26 +09:00
detect-virt detect-virt: add new --list command for showing all currently known VM/container envs 2018-05-22 13:14:18 +02:00
dissect tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
environment-d-generator tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
escape tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
firstboot os-util: add helpers for finding /etc/os-release 2018-05-24 17:01:57 +02:00
fsck tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
fstab-generator path-util: introduce path_simplify() 2018-06-03 23:39:26 +09:00
fuzz fuzz-journal-remote: write to /dev/null not stdout 2018-05-31 14:30:23 +02:00
getty-generator tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
gpt-auto-generator Merge pull request #8812 from keszybz/gpt-auto-memleak 2018-04-25 15:46:57 +02:00
hibernate-resume tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
hostname os-util: add helpers for finding /etc/os-release 2018-05-24 17:01:57 +02:00
hwdb systemd-hwdb: reflow help() to avoid a line break 2018-04-24 12:11:10 +02:00
import Add macro for checking if some flags are set 2018-06-04 11:50:44 +02:00
initctl tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
journal udev: add helper udev_device_new_from_stat_rdev() 2018-06-07 13:36:19 +02:00
journal-remote journal-remote: do not send _BOOT_ID twice 2018-05-31 14:33:41 +02:00
kernel-install tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
libsystemd bus: optionally call a callbacks for cleanup 2018-06-06 23:01:57 +02:00
libsystemd-network fileio: accept FILE* in addition to path in parse_env_file() 2018-05-24 17:01:57 +02:00
libudev tree-wide: remove some double newlines in headers, too 2018-05-22 16:13:45 +02:00
locale locale: add _unused_ attribute for dummy variable 2018-06-06 12:27:52 +02:00
login Remove NULL terminator from two log_struct calls 2018-06-06 14:44:34 +02:00
machine basic/log: add the log_struct terminator to macro 2018-06-04 13:46:03 +02:00
machine-id-setup tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
modules-load tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
mount path-util: introduce path_simplify() 2018-06-03 23:39:26 +09:00
network basic/log: add the log_struct terminator to macro 2018-06-04 13:46:03 +02:00
notify tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
nspawn tree-wide: some O_NDELAY → O_NONBLOCK fixes 2018-05-31 12:04:39 +02:00
nss-myhostname tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
nss-mymachines tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
nss-resolve tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
nss-systemd tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
partition tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
path tree-wide: drop spurious newlines (#8764) 2018-04-19 12:13:23 +02:00
portable path-util: introduce path_simplify() 2018-06-03 23:39:26 +09:00
quotacheck tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
random-seed tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
rc-local-generator tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
remount-fs tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
reply-password tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
resolve resolved: reformat message about a revoked trust anchor 2018-06-06 14:55:31 +02:00
rfkill tree-wide: drop redundant _cleanup_ macros (#8810) 2018-04-25 12:31:45 +02:00
run tree-wide: some O_NDELAY → O_NONBLOCK fixes 2018-05-31 12:04:39 +02:00
shared udev: add helper udev_device_new_from_stat_rdev() 2018-06-07 13:36:19 +02:00
sleep basic/log: add the log_struct terminator to macro 2018-06-04 13:46:03 +02:00
socket-proxy tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
stdio-bridge tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
sulogin-shell tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
sysctl Eliminate config_dirs vars which hold a static strv 2018-05-07 18:17:36 +02:00
system-update-generator tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
systemctl systemctl: when GetProcesses() doesn't work, say for which unit 2018-06-06 19:46:23 +02:00
systemd bus: optionally call a callbacks for cleanup 2018-06-06 23:01:57 +02:00
sysusers path-util: introduce path_simplify() 2018-06-03 23:39:26 +09:00
sysv-generator tree-wide: drop redundant _cleanup_ macros (#8810) 2018-04-25 12:31:45 +02:00
test test-bus-util: add a test for destroy callbacks 2018-06-06 23:01:57 +02:00
time-wait-sync time-util: introduce common implementation of TFD_TIMER_CANCEL_ON_SET client code 2018-06-06 10:55:45 +02:00
timedate basic/log: add the log_struct terminator to macro 2018-06-04 13:46:03 +02:00
timesync time-util: introduce common implementation of TFD_TIMER_CANCEL_ON_SET client code 2018-06-06 10:55:45 +02:00
tmpfiles path-util: introduce path_simplify() 2018-06-03 23:39:26 +09:00
tty-ask-password-agent tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
udev Add macro for checking if some flags are set 2018-06-04 11:50:44 +02:00
update-done tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
update-utmp tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
user-sessions tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
vconsole fileio: accept FILE* in addition to path in parse_env_file() 2018-05-24 17:01:57 +02:00
veritysetup tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00
volatile-root tree-wide: drop license boilerplate 2018-04-06 18:58:55 +02:00