[CRIU] [PATCH 2/3] mount: validate mounts only once on dump (v3)
Andrew Vagin
avagin at parallels.com
Tue Sep 16 11:37:37 PDT 2014
Pls, ignore this patch.
On Tue, Sep 16, 2014 at 07:00:45PM +0400, Andrey Vagin wrote:
> mntinfo contains mounts from all namespaces, so we can validate it only
> once after collecting mounts.
>
> v2: add a fake comment about goto
> v3: add a real comment about goto
> Signed-off-by: Andrey Vagin <avagin at openvz.org>
> Signed-off-by: Pavel Emelyanov <xemul at parallels.com>
> ---
> mount.c | 14 +++++++++-----
> 1 file changed, 9 insertions(+), 5 deletions(-)
>
> diff --git a/mount.c b/mount.c
> index 5e23e9d..1669611 100644
> --- a/mount.c
> +++ b/mount.c
> @@ -992,9 +992,6 @@ static int dump_mnt_ns(struct ns_id *ns, struct mount_info *pms)
> int img_fd = -1, ret = -1;
> int ns_id = ns->id;
>
> - if (validate_mounts(pms, true))
> - goto err;
> -
> pr_info("Dumping mountpoints\n");
> img_fd = open_image(CR_FD_MNTS, O_DUMP, ns_id);
> if (img_fd < 0)
> @@ -2095,8 +2092,12 @@ static int walk_mnt_ns(int (*cb)(struct ns_id *, struct mount_info *, void *), v
> if (mntinfo == NULL)
> goto err;
> }
> -
> - continue;
> + /*
> + * Mount namespaces are dumped only if the root task lives in
> + * its own mntns, so we can stop enumeration of namespaces.
> + * We are not going to dump this tree, so we skip validation.
> + */
> + goto out;
> }
>
> pr_info("Dump MNT namespace (mountpoints) %d via %d\n", ns->id, ns->pid);
> @@ -2111,6 +2112,9 @@ static int walk_mnt_ns(int (*cb)(struct ns_id *, struct mount_info *, void *), v
> }
> if (collect_shared(mntinfo))
> goto err;
> + if (validate_mounts(mntinfo, true))
> + goto err;
> +out:
> ret = 0;
> err:
> return ret;
> --
> 1.9.3
>
More information about the CRIU
mailing list