Simplify devpts_get_tty()

As pointed out by H. Peter Anvin, since the inode for the pty is known,
we don't need to look it up.

Signed-off-by: Sukadev Bhattiprolu <sukadev@us.ibm.com>
Signed-off-by: Alan Cox <alan@redhat.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Sukadev Bhattiprolu 2008-10-13 10:43:08 +01:00 committed by Linus Torvalds
parent 15f1a6338d
commit 527b3e4773

View file

@ -27,6 +27,7 @@
#define DEVPTS_SUPER_MAGIC 0x1cd1 #define DEVPTS_SUPER_MAGIC 0x1cd1
#define DEVPTS_DEFAULT_MODE 0600 #define DEVPTS_DEFAULT_MODE 0600
#define PTMX_MINOR 2
extern int pty_limit; /* Config limit on Unix98 ptys */ extern int pty_limit; /* Config limit on Unix98 ptys */
static DEFINE_IDA(allocated_ptys); static DEFINE_IDA(allocated_ptys);
@ -247,19 +248,11 @@ int devpts_pty_new(struct inode *ptmx_inode, struct tty_struct *tty)
struct tty_struct *devpts_get_tty(struct inode *pts_inode, int number) struct tty_struct *devpts_get_tty(struct inode *pts_inode, int number)
{ {
struct dentry *dentry = get_node(number); BUG_ON(pts_inode->i_rdev == MKDEV(TTYAUX_MAJOR, PTMX_MINOR));
struct tty_struct *tty;
tty = NULL; if (pts_inode->i_sb->s_magic == DEVPTS_SUPER_MAGIC)
if (!IS_ERR(dentry)) { return (struct tty_struct *)pts_inode->i_private;
if (dentry->d_inode) return NULL;
tty = dentry->d_inode->i_private;
dput(dentry);
}
mutex_unlock(&devpts_root->d_inode->i_mutex);
return tty;
} }
void devpts_pty_kill(struct tty_struct *tty) void devpts_pty_kill(struct tty_struct *tty)