TTY: move devpts kill to pty
Now that we have control over tty->driver_data in pty, we can just kill the /dev/pts/ in pty code too. Namely, in ->shutdown hook of tty. For pty, this is called only once, for whichever end is closed last. But we don't care, both driver_data are the inode as it used to be till now. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Acked-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
此提交包含在:
@@ -363,6 +363,12 @@ err:
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* this is called once with whichever end is closed last */
|
||||
static void pty_unix98_shutdown(struct tty_struct *tty)
|
||||
{
|
||||
devpts_kill_index(tty->driver_data, tty->index);
|
||||
}
|
||||
|
||||
static void pty_cleanup(struct tty_struct *tty)
|
||||
{
|
||||
kfree(tty->port);
|
||||
@@ -578,6 +584,7 @@ static const struct tty_operations ptm_unix98_ops = {
|
||||
.set_termios = pty_set_termios,
|
||||
.ioctl = pty_unix98_ioctl,
|
||||
.resize = pty_resize,
|
||||
.shutdown = pty_unix98_shutdown,
|
||||
.cleanup = pty_cleanup
|
||||
};
|
||||
|
||||
@@ -593,6 +600,7 @@ static const struct tty_operations pty_unix98_ops = {
|
||||
.chars_in_buffer = pty_chars_in_buffer,
|
||||
.unthrottle = pty_unthrottle,
|
||||
.set_termios = pty_set_termios,
|
||||
.shutdown = pty_unix98_shutdown,
|
||||
.cleanup = pty_cleanup,
|
||||
};
|
||||
|
||||
@@ -661,6 +669,7 @@ static int ptmx_open(struct inode *inode, struct file *filp)
|
||||
goto err_release;
|
||||
|
||||
tty_unlock(tty);
|
||||
tty->driver_data = inode;
|
||||
tty->link->driver_data = slave_inode;
|
||||
return 0;
|
||||
err_release:
|
||||
|
新增問題並參考
封鎖使用者