summaryrefslogtreecommitdiff
path: root/src/shared/volatile-util.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2016-12-12 21:03:34 +0100
committerLennart Poettering <lennart@poettering.net>2016-12-21 19:09:29 +0100
commite5b422034160937712fe7a546f175b883e39e763 (patch)
tree0b46eb9d8d8cdf0b51c74d698498b20d3153341d /src/shared/volatile-util.c
parentf78273c8dacf678cc8fd7387f678e6344a99405c (diff)
shared: rework switch_root() code
Let's follow symlinks before invoking mount() on arbitrary paths, so that we won't get confused if directories are prepared with absolute symlinks. Use FOREACH_STRING() instead of NULSTR_FOREACH() as it is more readable. Don't use snprintf() for concatenating strings, let chase_symlinks() to that. Replace homegrown mount check with path_is_mount_point(). Also, change the behaviour when we encounter this: instead of unmounting the old mount point, simply leave it around and don't replace it, so that initrds can mount stuff there with different settings than we would apply. This is in-line with how we handle automatic mounts in nspawn for example. Use umount_recursive() instead of a simple umount2() for unmounting the old root, so that we actually cover really all mounts, not just the top-level one.
Diffstat (limited to 'src/shared/volatile-util.c')
0 files changed, 0 insertions, 0 deletions