[CRIU] [PATCH 12/13] mount: allow to dump and restore nested mount namespaces
Pavel Emelyanov
xemul at parallels.com
Tue Mar 11 12:50:20 PDT 2014
On 03/11/2014 07:18 PM, Andrey Vagin wrote:
> Signed-off-by: Andrey Vagin <avagin at openvz.org>
> ---
> namespaces.c | 2 +-
> pstree.c | 25 ++++++++++++++++++-------
> 2 files changed, 19 insertions(+), 8 deletions(-)
>
> diff --git a/namespaces.c b/namespaces.c
> index f45e088..b8036a3 100644
> --- a/namespaces.c
> +++ b/namespaces.c
> @@ -182,7 +182,7 @@ static unsigned int generate_ns_id(int pid, unsigned int kid, struct ns_desc *nd
> BUG_ON(current_ns_mask & nd->cflag);
> pr_info("Will take %s namespace in the image\n", nd->str);
> current_ns_mask |= nd->cflag;
> - } else {
> + } else if (nd->cflag != CLONE_NEWNS) {
> pr_err("Can't dump nested %s namespace for %d\n",
> nd->str, pid);
> return 0;
> diff --git a/pstree.c b/pstree.c
> index f2f3fc7..aac29c7 100644
> --- a/pstree.c
> +++ b/pstree.c
> @@ -635,19 +635,30 @@ static int prepare_pstree_kobj_ids(void)
> set_mask:
> item->rst->clone_flags = cflags;
>
> + if (item == root_item) {
> + pr_info("Will restore in %lx namespaces\n", cflags);
> + current_ns_mask = cflags & CLONE_ALLNS;
> + continue;
> + }
> +
> + /*
> + * Nested mount namespaces are supported only
> + * nobody shares external mntns.
> + */
> + if (cflags & current_ns_mask & CLONE_NEWNS)
> + cflags &= ~CLONE_NEWNS;
Can we unscrew this up?
> +
> /*
> * Workaround for current namespaces model --
> * all tasks should be in one namespace. And
> * this namespace is either inherited from the
> * criu or is created for the init task (only)
> */
> - if (item == root_item) {
> - pr_info("Will restore in %lx namespaces\n", cflags);
> - current_ns_mask = cflags & CLONE_ALLNS;
> - } else if (cflags & CLONE_ALLNS) {
> - pr_err("Can't restore sub-task in NS\n");
> - return -1;
> - }
> + if (cflags & CLONE_ALLNS == 0)
> + continue;
> +
> + pr_err("Can't restore sub-task in NS\n");
> + return -1;
> }
>
> pr_debug("NS mask to use %lx\n", current_ns_mask);
>
More information about the CRIU
mailing list