[systemd-devel] [RFC][PATCH] main: ISOLATE rather than REPLACE default.target
Lennart Poettering
lennart at poettering.net
Tue Mar 5 10:29:53 PST 2013
On Tue, 05.03.13 15:56, Tom Gundersen (teg at jklm.no) wrote:
> 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.
Yes, this is the intended behaviour of JOB_REPLACE: we will not pull in
dependencies of units which are satisfied anyway.
>
> 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 might make sense to add. Michal, do you have an opinion on this? I
see no obvious problem with this patch, do you see any?
>
> Comments?
>
> Cc: Harald Hoyer <harald.hoyer at gmail.com>
> ---
> src/core/main.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/core/main.c b/src/core/main.c
> index 71e0a6c..2bbea7e 100644
> --- a/src/core/main.c
> +++ b/src/core/main.c
> @@ -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);
Lennart
--
Lennart Poettering - Red Hat, Inc.
More information about the systemd-devel
mailing list