diff options
author | Lennart Poettering <lennart@poettering.net> | 2016-12-12 21:03:34 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2016-12-21 19:09:29 +0100 |
commit | e5b422034160937712fe7a546f175b883e39e763 (patch) | |
tree | 0b46eb9d8d8cdf0b51c74d698498b20d3153341d /src/shared/volatile-util.h | |
parent | journald: don't flush to /var/log/journal before we get asked to (diff) | |
download | systemd-e5b422034160937712fe7a546f175b883e39e763.tar.xz systemd-e5b422034160937712fe7a546f175b883e39e763.zip |
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.h')
0 files changed, 0 insertions, 0 deletions