[lxc-users] [PATCH] check whether rootfs is shared before running pre-mount hooks
Florian Klink
flokli at flokli.de
Thu Mar 27 14:57:44 UTC 2014
Wooops... wait! It's not compiling cleanly!
Am 27.03.2014 15:42, schrieb Florian Klink:
> 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>
> ---
> src/lxc/conf.c | 31 +++++++++++++++++++------------
> 1 file changed, 19 insertions(+), 12 deletions(-)
>
> diff --git a/src/lxc/conf.c b/src/lxc/conf.c
> index a9d64ba..83b8ffc 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) {
> @@ -3707,6 +3695,25 @@ void tmp_proc_unmount(struct lxc_conf *lxc_conf)
>
> int lxc_setup(struct lxc_handler *handler)
> {
> + 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(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;
> + }
> + }
> +
> const char *name = handler->name;
> struct lxc_conf *lxc_conf = handler->conf;
> const char *lxcpath = handler->lxcpath;
>
More information about the lxc-users
mailing list