mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-06 13:17:44 +03:00
shutdown: Lazy unmount /oldroot/{dev,proc,sys}
These should not prevent us from cleaning up the remainders of /oldroot if something in the kernel is blocking these from being unmounted.
This commit is contained in:
parent
20596876e3
commit
df48b430a4
@ -648,6 +648,17 @@ static int umount_with_timeout(MountPoint *m, bool last_try) {
|
||||
|
||||
if (r == -EBUSY && last_try)
|
||||
log_umount_blockers(m->path);
|
||||
|
||||
/* If API filesystems under /oldroot cannot be unmounted we can still lazily unmount
|
||||
* them to unblock /oldroot. They serve no function to us anymore and should be
|
||||
* memory-only and hence safe to unmount like this. */
|
||||
if (in_initrd() &&
|
||||
PATH_STARTSWITH_SET(m->path, "/oldroot/dev", "/oldroot/proc", "/oldroot/sys")) {
|
||||
log_info("Lazily unmounting '%s' instead.", m->path);
|
||||
r = umount2(m->path, MNT_FORCE | MNT_DETACH);
|
||||
if (r < 0)
|
||||
log_error_errno(errno, "Failed to lazily unmount %s: %m", m->path);
|
||||
}
|
||||
}
|
||||
|
||||
_exit(r < 0 ? EXIT_FAILURE : EXIT_SUCCESS);
|
||||
|
Loading…
Reference in New Issue
Block a user