Subject: [PATCH 1/11]: Move tty lookup/reopen to tty_open From: Sukadev Bhattiprolu <sukadev@xxxxxxxxxx> Move tty_driver_lookup_tty() and tty_reopen() from tty_init_dev() into tty_open() (one of the two callers of tty_init_dev()). These calls are not really required in ptmx_open(), the other caller, since ptmx_open() would be setting up a new tty. Changelog[v2]: - remove the lookup and reopen calls from ptmx_open - merge with recent changes to ttydev tree Signed-off-by: Sukadev Bhattiprolu <sukadev@xxxxxxxxxx> --- drivers/char/tty_io.c | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) Index: linux-2.6.27-rc3-tty/drivers/char/tty_io.c =================================================================== --- linux-2.6.27-rc3-tty.orig/drivers/char/tty_io.c 2008-08-28 15:26:34.000000000 -0700 +++ linux-2.6.27-rc3-tty/drivers/char/tty_io.c 2008-08-28 16:16:29.000000000 -0700 @@ -1366,19 +1366,6 @@ struct tty_struct *tty_init_dev(struct t struct tty_struct *tty; int retval; - /* check whether we're reopening an existing tty */ - tty = tty_driver_lookup_tty(driver, idx); - - if (IS_ERR(tty)) - return tty; - - if (tty) { - retval = tty_reopen(tty); - if (retval) - return ERR_PTR(retval); - return tty; - } - /* Check if pty master is being opened multiple times */ if (driver->subtype == PTY_TYPE_MASTER && (driver->flags & TTY_DRIVER_DEVPTS_MEM) && !first_ok) @@ -1780,7 +1767,7 @@ void tty_release_dev(struct file *filp) static int __tty_open(struct inode *inode, struct file *filp) { - struct tty_struct *tty; + struct tty_struct *tty = NULL; int noctty, retval; struct tty_driver *driver; int index; @@ -1837,7 +1824,21 @@ retry_open: return -ENODEV; } got_driver: - tty = tty_init_dev(driver, index, 0); + if (!tty) { + /* check whether we're reopening an existing tty */ + tty = tty_driver_lookup_tty(driver, index); + + if (IS_ERR(tty)) + return PTR_ERR(tty); + } + + if (tty) { + retval = tty_reopen(tty); + if (retval) + tty = ERR_PTR(retval); + } else + tty = tty_init_dev(driver, index, 0); + mutex_unlock(&tty_mutex); tty_driver_kref_put(driver); if (IS_ERR(tty)) _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers