aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/pty.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/pty.c')
-rw-r--r--drivers/char/pty.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/char/pty.c b/drivers/char/pty.c
index c5a192dd00db..a391badef52a 100644
--- a/drivers/char/pty.c
+++ b/drivers/char/pty.c
@@ -60,7 +60,7 @@ static void pty_close(struct tty_struct * tty, struct file * filp)
60 set_bit(TTY_OTHER_CLOSED, &tty->flags); 60 set_bit(TTY_OTHER_CLOSED, &tty->flags);
61#ifdef CONFIG_UNIX98_PTYS 61#ifdef CONFIG_UNIX98_PTYS
62 if (tty->driver == ptm_driver) 62 if (tty->driver == ptm_driver)
63 devpts_pty_kill(tty->index); 63 devpts_pty_kill(tty->link);
64#endif 64#endif
65 tty_vhangup(tty->link); 65 tty_vhangup(tty->link);
66 } 66 }
@@ -453,9 +453,10 @@ static int pty_unix98_ioctl(struct tty_struct *tty, struct file *file,
453 * This provides our locking. 453 * This provides our locking.
454 */ 454 */
455 455
456static struct tty_struct *ptm_unix98_lookup(struct tty_driver *driver, int idx) 456static struct tty_struct *ptm_unix98_lookup(struct tty_driver *driver,
457 struct inode *ptm_inode, int idx)
457{ 458{
458 struct tty_struct *tty = devpts_get_tty(idx); 459 struct tty_struct *tty = devpts_get_tty(ptm_inode, idx);
459 if (tty) 460 if (tty)
460 tty = tty->link; 461 tty = tty->link;
461 return tty; 462 return tty;
@@ -470,9 +471,10 @@ static struct tty_struct *ptm_unix98_lookup(struct tty_driver *driver, int idx)
470 * This provides our locking. 471 * This provides our locking.
471 */ 472 */
472 473
473static struct tty_struct *pts_unix98_lookup(struct tty_driver *driver, int idx) 474static struct tty_struct *pts_unix98_lookup(struct tty_driver *driver,
475 struct inode *pts_inode, int idx)
474{ 476{
475 struct tty_struct *tty = devpts_get_tty(idx); 477 struct tty_struct *tty = devpts_get_tty(pts_inode, idx);
476 /* Master must be open before slave */ 478 /* Master must be open before slave */
477 if (!tty) 479 if (!tty)
478 return ERR_PTR(-EIO); 480 return ERR_PTR(-EIO);
@@ -602,7 +604,7 @@ static int __ptmx_open(struct inode *inode, struct file *filp)
602 nonseekable_open(inode, filp); 604 nonseekable_open(inode, filp);
603 605
604 /* find a device that is not in use. */ 606 /* find a device that is not in use. */
605 index = devpts_new_index(); 607 index = devpts_new_index(inode);
606 if (index < 0) 608 if (index < 0)
607 return index; 609 return index;
608 610
@@ -619,7 +621,7 @@ static int __ptmx_open(struct inode *inode, struct file *filp)
619 filp->private_data = tty; 621 filp->private_data = tty;
620 file_move(filp, &tty->tty_files); 622 file_move(filp, &tty->tty_files);
621 623
622 retval = devpts_pty_new(tty->link); 624 retval = devpts_pty_new(inode, tty->link);
623 if (retval) 625 if (retval)
624 goto out1; 626 goto out1;
625 627
@@ -630,7 +632,7 @@ out1:
630 tty_release_dev(filp); 632 tty_release_dev(filp);
631 return retval; 633 return retval;
632out: 634out:
633 devpts_kill_index(index); 635 devpts_kill_index(inode, index);
634 return retval; 636 return retval;
635} 637}
636 638