vc: set detach flag when umounting rootfs

docker might bind mount some files/dirs under container rootfs
without notifying runtime. We need to unmount them otherwise
docker will fail to clean up containers.

man umount(2):
MNT_DETACH (since Linux 2.4.11)
     Perform a lazy unmount: make the mount point unavailable for new accesses, immediately
     disconnect the filesystem and all filesystems mounted below it from each other and
     from the mount table, and actually perform the unmount when the mount point ceases to be busy.

Signed-off-by: Peng Tao <bergwolf@gmail.com>
This commit is contained in:
Peng Tao 2019-01-17 23:50:52 +08:00
parent d314e2d0b7
commit d75f26d719

View File

@ -306,7 +306,7 @@ func bindUnmountContainerRootfs(ctx context.Context, sharedDir, sandboxID, cID s
defer span.Finish()
rootfsDest := filepath.Join(sharedDir, sandboxID, cID, rootfsDir)
syscall.Unmount(rootfsDest, 0)
syscall.Unmount(rootfsDest, syscall.MNT_DETACH)
return nil
}