mirror of
https://github.com/systemd/systemd.git
synced 2025-02-11 21:57:53 +03:00
nspawn: slightly reorder mount logic
Let's first setup the volatile logic, and only then mount secondary partitions of the image in.
This commit is contained in:
parent
6c610acaaa
commit
7d0ecdd62d
@ -2896,6 +2896,28 @@ static int outer_child(
|
||||
"Selected user namespace base " UID_FMT " and range " UID_FMT ".", arg_uid_shift, arg_uid_range);
|
||||
}
|
||||
|
||||
/* Turn directory into bind mount */
|
||||
r = mount_verbose(LOG_ERR, directory, directory, NULL, MS_BIND|MS_REC, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = setup_pivot_root(
|
||||
directory,
|
||||
arg_pivot_root_new,
|
||||
arg_pivot_root_old);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = setup_volatile_mode(
|
||||
directory,
|
||||
arg_volatile_mode,
|
||||
arg_userns_mode != USER_NAMESPACE_NO,
|
||||
arg_uid_shift,
|
||||
arg_uid_range,
|
||||
arg_selinux_context);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (dissected_image) {
|
||||
/* Now we know the uid shift, let's now mount everything else that might be in the image. */
|
||||
r = dissected_image_mount(dissected_image, directory, arg_uid_shift,
|
||||
@ -2921,28 +2943,6 @@ static int outer_child(
|
||||
unified_cgroup_hierarchy_socket = safe_close(unified_cgroup_hierarchy_socket);
|
||||
}
|
||||
|
||||
/* Turn directory into bind mount */
|
||||
r = mount_verbose(LOG_ERR, directory, directory, NULL, MS_BIND|MS_REC, NULL);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = setup_pivot_root(
|
||||
directory,
|
||||
arg_pivot_root_new,
|
||||
arg_pivot_root_old);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = setup_volatile_mode(
|
||||
directory,
|
||||
arg_volatile_mode,
|
||||
arg_userns_mode != USER_NAMESPACE_NO,
|
||||
arg_uid_shift,
|
||||
arg_uid_range,
|
||||
arg_selinux_context);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
/* Mark everything as shared so our mounts get propagated down. This is
|
||||
* required to make new bind mounts available in systemd services
|
||||
* inside the containter that create a new mount namespace.
|
||||
|
Loading…
x
Reference in New Issue
Block a user