[CRIU] Re: [PATCH 5/5] tty: Add restoration of controlling terminal v2

Cyrill Gorcunov gorcunov at openvz.org
Wed Sep 12 03:58:46 EDT 2012


On Wed, Sep 12, 2012 at 11:16:46AM +0400, Pavel Emelyanov wrote:
> > +int tty_restore_ctl_terminal(struct file_desc *d)
> > +{
> > +	struct tty_info *info = container_of(d, struct tty_info, d);
> > +
> > +	BUG_ON(!(pty_is_master(info)) || !info->tie->sid);
> 
> This equals to BUG_ON(!is_master && info->sid). Why non master must NOT have sids?

As far as I know nonmasters do not have sids.

> > @@ -424,6 +443,12 @@ static int receive_fd(int pid, FdinfoEntry *fe, struct file_desc *d)
> >  	if (reopen_fd_as(fe->fd, tmp) < 0)
> >  		return -1;
> >  
> > +	if (fe->fd == get_service_fd(CTL_TTY_OFF)) {
> > +		tty_restore_ctl_terminal(d);
> > +		close(fle->fe->fd);
> > +		return 0;
> > +	}
> > +
> >  	fcntl(tmp, F_SETFD, fe->flags);
> >  	return 0;
> >  }
> 
> Why not in post_open?

I'll reply to this a bit late (checking if I'm not missed something).

> 
> > @@ -131,7 +131,7 @@ static int prepare_shared(void)
> >  		if (ret < 0)
> >  			break;
> >  
> > -		ret = prepare_fd_pid(pi->pid.virt, pi->rst);
> > +		ret = prepare_fd_pid(pi->pid.virt, pi->rst, pi->ctl_tty_id);
> >  		if (ret < 0)
> >  			break;
> >  	}
> 
> Better introduce prepare_ctl_tty() call.

OK

	Cyrill


More information about the CRIU mailing list