[CRIU] [PATCH 03/11] tty: Introduce dump_one_tty helper

Andrew Vagin avagin at parallels.com
Wed Oct 1 07:51:26 PDT 2014


On Mon, Sep 29, 2014 at 08:25:29PM +0400, Cyrill Gorcunov wrote:
> Depending on tty major/minor numbers we will
> need different dumping routines so choose one
> here.
> 
> Signed-off-by: Cyrill Gorcunov <gorcunov at openvz.org>
> ---
>  tty.c | 33 +++++++++++++++++++++++++++------
>  1 file changed, 27 insertions(+), 6 deletions(-)
> 
> diff --git a/tty.c b/tty.c
> index 309d28c3a024..770056934f28 100644
> --- a/tty.c
> +++ b/tty.c
> @@ -1160,14 +1160,11 @@ out:
>  	return ret;
>  }
>  
> -static int dump_one_pty(int lfd, u32 id, const struct fd_parms *p)
> +static int dump_one_pty(int lfd, u32 id, const struct fd_parms *p, int major, int minor)
>  {

minor is not used here.

>  	TtyFileEntry e = TTY_FILE_ENTRY__INIT;
> -	int ret = 0, major, index;
> +	int ret = 0, index;
>  
> -	pr_info("Dumping tty %d with id %#x\n", lfd, id);
> -
> -	major = major(p->stat.st_rdev);
>  	index = parse_index(id, lfd, major);
>  	if (index < 0)
>  		return -1;
> @@ -1205,9 +1202,33 @@ static int dump_one_pty(int lfd, u32 id, const struct fd_parms *p)
>  	return ret;
>  }
>  
> +static int dump_one_tty(int lfd, u32 id, const struct fd_parms *p)
> +{
> +	int major = major(p->stat.st_rdev);
> +	int minor = minor(p->stat.st_rdev);
> +
> +	pr_info("Dumping tty (%d:%d) %d with id %#x\n",
> +		major, minor, lfd, id);
> +
> +	switch (major) {
> +	case TTYAUX_MAJOR:
> +		if (minor == 0 || minor == 2)

Which devices has these numbers?

> +			return dump_one_pty(lfd, id, p, major, minor);
> +		break;
> +	case UNIX98_PTY_MASTER_MAJOR ... (UNIX98_PTY_MASTER_MAJOR + UNIX98_PTY_MAJOR_COUNT - 1):
> +	case UNIX98_PTY_SLAVE_MAJOR:
> +		return dump_one_pty(lfd, id, p, major, minor);
> +	default:
> +		break;
> +	}
> +
> +	pr_err("Unsupported tty (%d:%d) device\n", major, minor);
> +	return -1;
> +}
> +
>  const struct fdtype_ops tty_dump_ops = {
>  	.type	= FD_TYPES__TTY,
> -	.dump	= dump_one_pty,
> +	.dump	= dump_one_tty,
>  };
>  
>  int tty_prep_fds(void)
> -- 
> 1.9.3
> 
> _______________________________________________
> CRIU mailing list
> CRIU at openvz.org
> https://lists.openvz.org/mailman/listinfo/criu


More information about the CRIU mailing list