mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-29 05:18:00 +00:00
mount: don't destruct an external mount-namespace (v2)
If a parent mount point is shared with exteranl mntns, a child will be umounted from the external mntns too. For example: $ mount -t tmpfs xxx /root/tmp/ $ mount --make-shared tmp $ mkdir tmp/xxx $ mount -t tmpfs xxx /root/tmp/xxx $ touch tmp/xxx/a $ unshare -m umount tmp/xxx $ ls -l tmp/xxx/a ls: cannot access tmp/xxx/a: No such file or directory This patch changes a parent mnt to private for umounting childrens. v2: exit if a mount point can not be marked ad private Signed-off-by: Andrey Vagin <avagin@openvz.org> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
parent
714443d96f
commit
7aaef1ee4f
5
mount.c
5
mount.c
@ -590,6 +590,11 @@ static int do_umount_one(struct mount_info *mi)
|
||||
if (!mi->parent)
|
||||
return 0;
|
||||
|
||||
if (mount("none", mi->parent->mountpoint, "none", MS_REC|MS_PRIVATE, NULL)) {
|
||||
pr_perror("Can't mark %s as private", mi->parent->mountpoint);
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (umount(mi->mountpoint)) {
|
||||
pr_perror("Can't umount at %s", mi->mountpoint);
|
||||
return -1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user