162b97cfa2
The goal is to stop setting and using tty->driver_data in devpts code. It should be used solely by the driver's code, pty in this case. For the cleanup of layering, we will need the inode created in devpts_pty_new to be stored into slave's driver_data. So we convert devpts_pty_new to return the inode or an ERR_PTR-encoded error in case of failure. The move of 'inode = new_inode(sb);' from declarators to the code is only cosmetical, but it makes the code easier to read. 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>
49 lines
1.4 KiB
C
49 lines
1.4 KiB
C
/* -*- linux-c -*- --------------------------------------------------------- *
|
|
*
|
|
* linux/include/linux/devpts_fs.h
|
|
*
|
|
* Copyright 1998-2004 H. Peter Anvin -- All Rights Reserved
|
|
*
|
|
* This file is part of the Linux kernel and is made available under
|
|
* the terms of the GNU General Public License, version 2, or at your
|
|
* option, any later version, incorporated herein by reference.
|
|
*
|
|
* ------------------------------------------------------------------------- */
|
|
|
|
#ifndef _LINUX_DEVPTS_FS_H
|
|
#define _LINUX_DEVPTS_FS_H
|
|
|
|
#include <linux/errno.h>
|
|
|
|
#ifdef CONFIG_UNIX98_PTYS
|
|
|
|
int devpts_new_index(struct inode *ptmx_inode);
|
|
void devpts_kill_index(struct inode *ptmx_inode, int idx);
|
|
/* mknod in devpts */
|
|
struct inode *devpts_pty_new(struct inode *ptmx_inode, struct tty_struct *tty);
|
|
/* get private structure */
|
|
void *devpts_get_priv(struct inode *pts_inode);
|
|
/* unlink */
|
|
void devpts_pty_kill(struct tty_struct *tty);
|
|
|
|
#else
|
|
|
|
/* Dummy stubs in the no-pty case */
|
|
static inline int devpts_new_index(struct inode *ptmx_inode) { return -EINVAL; }
|
|
static inline void devpts_kill_index(struct inode *ptmx_inode, int idx) { }
|
|
static inline struct inode *devpts_pty_new(struct inode *ptmx_inode,
|
|
struct tty_struct *tty)
|
|
{
|
|
return ERR_PTR(-EINVAL);
|
|
}
|
|
static inline void *devpts_get_priv(struct inode *pts_inode)
|
|
{
|
|
return NULL;
|
|
}
|
|
static inline void devpts_pty_kill(struct tty_struct *tty) { }
|
|
|
|
#endif
|
|
|
|
|
|
#endif /* _LINUX_DEVPTS_FS_H */
|