mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-13 17:54:20 +00:00
check whether rootfs is shared before running pre-mount hooks
this expandsc597baa8f9
and2c6f3fc932
. Also move the block using detect_ramfs_rootfs() from setup_rootfs() to lxc_setup() Signed-off-by: Florian Klink <flokli@flokli.de> Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
b343592b45
commit
cd698bdd40
@ -1506,18 +1506,6 @@ static int setup_rootfs(struct lxc_conf *conf)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (detect_ramfs_rootfs()) {
|
||||
if (chroot_into_slave(conf)) {
|
||||
ERROR("Failed to chroot into slave /");
|
||||
return -1;
|
||||
}
|
||||
} else if (detect_shared_rootfs()) {
|
||||
if (mount("", "/", NULL, MS_SLAVE|MS_REC, 0)) {
|
||||
SYSERROR("Failed to make / rslave");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
// First try mounting rootfs using a bdev
|
||||
struct bdev *bdev = bdev_init(rootfs->path, rootfs->mount, rootfs->options);
|
||||
if (bdev && bdev->ops->mount(bdev) == 0) {
|
||||
@ -3712,6 +3700,19 @@ int lxc_setup(struct lxc_handler *handler)
|
||||
const char *lxcpath = handler->lxcpath;
|
||||
void *data = handler->data;
|
||||
|
||||
if (detect_shared_rootfs()) {
|
||||
if (mount(NULL, "/", NULL, MS_SLAVE|MS_REC, NULL)) {
|
||||
SYSERROR("Failed to make / rslave");
|
||||
ERROR("Continuing...");
|
||||
}
|
||||
}
|
||||
if (detect_ramfs_rootfs()) {
|
||||
if (chroot_into_slave(lxc_conf)) {
|
||||
ERROR("Failed to chroot into slave /");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
if (lxc_conf->inherit_ns_fd[LXC_NS_UTS] == -1) {
|
||||
if (setup_utsname(lxc_conf->utsname)) {
|
||||
ERROR("failed to setup the utsname for '%s'", name);
|
||||
|
Loading…
Reference in New Issue
Block a user