[CRIU] [PATCH 2/2] mount: parse devpts options

Serge Hallyn serge.hallyn at ubuntu.com
Wed Jun 25 08:13:06 PDT 2014


Quoting Andrey Vagin (avagin at openvz.org):
> The newinstance options isn't shown in mountinfo. Currently it is
> detected in devpts_dump. It is added only for root mounts and it
> isn't added for bind-mounts. So mounts_equal(a, b, true) returns false
> for such mounts and criu doesn't understand that they should be
> bind-mounted.
>
> Reported-by: Tycho Andersen <tycho.andersen at canonical.com>
> Cc: Serge Hallyn <serge.hallyn at ubuntu.com>

Haven't tested, but that makes sense - thanks.

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

> Signed-off-by: Andrey Vagin <avagin at openvz.org>
> ---
>  mount.c            | 4 ++--
>  test/zdtm/lib/ns.c | 4 ++++
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/mount.c b/mount.c
> index 1793c20..4d84f48 100644
> --- a/mount.c
> +++ b/mount.c
> @@ -672,7 +672,7 @@ static int attach_option(struct mount_info *pm, char *opt)
>  }
>  
>  /* Is it mounted w or w/o the newinstance option */
> -static int devpts_dump(struct mount_info *pm)
> +static int devpts_parse(struct mount_info *pm)
>  {
>  	struct stat *host_st;
>  
> @@ -839,7 +839,7 @@ static struct fstype fstypes[] = {
>  		.restore = tmpfs_restore,
>  	}, {
>  		.name = "devpts",
> -		.dump = devpts_dump,
> +		.parse = devpts_parse,
>  		.code = FSTYPE__DEVPTS,
>  	}, {
>  		.name = "simfs",
> diff --git a/test/zdtm/lib/ns.c b/test/zdtm/lib/ns.c
> index a216715..8afec5b 100644
> --- a/test/zdtm/lib/ns.c
> +++ b/test/zdtm/lib/ns.c
> @@ -81,6 +81,10 @@ static int prepare_mntns()
>  			fprintf(stderr, "mount(/dev/pts) failed: %m\n");
>  			return -1;
>  		}
> +		if (mount("/dev/pts/ptmx", "/dev/ptmx", NULL, MS_BIND, NULL)) {
> +			fprintf(stderr, "mount(/dev/pts) failed: %m\n");
> +			return -1;
> +		}
>  		if (fchdir(dfd)) {
>  			fprintf(stderr, "fchdir() failed: %m\n");
>  			return -1;
> -- 
> 1.8.5.3
> 


More information about the CRIU mailing list