[lxc-users] [PATCH] check whether rootfs is shared before running pre-mount hooks

Serge Hallyn serge.hallyn at ubuntu.com
Thu Mar 27 18:17:10 UTC 2014


Quoting Florian Klink (flokli at flokli.de):
> this expands c597baa8f9 and 2c6f3fc932.
> 
> Also move the block using detect_ramfs_rootfs() from setup_rootfs() to
> lxc_setup()
> 
> Signed-off-by: Florian Klink <flokli at flokli.de>

Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>

> ---
>  src/lxc/conf.c | 25 +++++++++++++------------
>  1 file changed, 13 insertions(+), 12 deletions(-)
> 
> diff --git a/src/lxc/conf.c b/src/lxc/conf.c
> index a9d64ba..e34e034 100644
> --- a/src/lxc/conf.c
> +++ b/src/lxc/conf.c
> @@ -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);
> -- 
> 1.9.1
> _______________________________________________
> lxc-users mailing list
> lxc-users at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-users


More information about the lxc-users mailing list