main: ISOLATE rather than REPLACE default.target

This allows switch-root to work correctly if a unit is active both before and
after the switch-root, but its dependencies change. Before the patch, any
dependencies added to active units by switch-root will not be pulled, in
particular filesystems configured in /etc/fstab would not be activated if
local-fs.target was active in the initrd.

It is not clear to me if there is a bug in the REPLACE handling, or if it is
working as expected and that we really want to use ISOLATE instead as this patch
does.
This commit is contained in:
Tom Gundersen 2013-03-05 15:56:47 +09:00 committed by Lennart Poettering
parent 61a9648f02
commit 95f1b47d27

View file

@ -1720,7 +1720,7 @@ int main(int argc, char *argv[]) {
manager_dump_units(m, stdout, "\t");
}
r = manager_add_job(m, JOB_START, target, JOB_REPLACE, false, &error, &default_unit_job);
r = manager_add_job(m, JOB_START, target, JOB_ISOLATE, false, &error, &default_unit_job);
if (r < 0) {
log_error("Failed to start default target: %s", bus_error(&error, r));
dbus_error_free(&error);