diff options
author | Sukadev Bhattiprolu <sukadev@us.ibm.com> | 2008-10-13 10:43:08 +0100 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-13 09:51:43 -0700 |
commit | 527b3e4773628b30d03323a2cb5fb0d84441990f (patch) | |
tree | d7dfcc1b716881162d93bf24ade602a77ca171ac /fs | |
parent | 15f1a6338ddd4e69fff965d4b3a0e1bfb7a13d9c (diff) | |
download | lwn-527b3e4773628b30d03323a2cb5fb0d84441990f.tar.gz lwn-527b3e4773628b30d03323a2cb5fb0d84441990f.zip |
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>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/devpts/inode.c | 17 |
1 files changed, 5 insertions, 12 deletions
diff --git a/fs/devpts/inode.c b/fs/devpts/inode.c index 638db9b769ac..b292ed7ff1ca 100644 --- a/fs/devpts/inode.c +++ b/fs/devpts/inode.c @@ -27,6 +27,7 @@ #define DEVPTS_SUPER_MAGIC 0x1cd1 #define DEVPTS_DEFAULT_MODE 0600 +#define PTMX_MINOR 2 extern int pty_limit; /* Config limit on Unix98 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 dentry *dentry = get_node(number); - struct tty_struct *tty; - - tty = NULL; - if (!IS_ERR(dentry)) { - if (dentry->d_inode) - tty = dentry->d_inode->i_private; - dput(dentry); - } - - mutex_unlock(&devpts_root->d_inode->i_mutex); + BUG_ON(pts_inode->i_rdev == MKDEV(TTYAUX_MAJOR, PTMX_MINOR)); - return tty; + if (pts_inode->i_sb->s_magic == DEVPTS_SUPER_MAGIC) + return (struct tty_struct *)pts_inode->i_private; + return NULL; } void devpts_pty_kill(struct tty_struct *tty) |