[Devel] [PATCH rh7] tty: vtty -- Drop TTY_PINNED_BY_OTHER bit

Konstantin Khorenko khorenko at virtuozzo.com
Thu Mar 24 07:29:50 PDT 2016


Volodya, please review.

--
Best regards,

Konstantin Khorenko,
Virtuozzo Linux Kernel Team

On 03/18/2016 09:45 PM, Cyrill Gorcunov wrote:
> This bit was introduced during our vttys code rework but eventually
> we don't need it, plain comparision with slave vtty driver is enough.
> So lets drop it off since it might conflict with some new tty bits
> in future.
>
> Signed-off-by: Cyrill Gorcunov <gorcunov at virtuozzo.com>
> CC: Vladimir Davydov <vdavydov at virtuozzo.com>
> CC: Konstantin Khorenko <khorenko at virtuozzo.com>
> ---
>   drivers/tty/n_tty.c |    4 ++--
>   drivers/tty/pty.c   |   12 ++++++------
>   include/linux/tty.h |    3 ---
>   include/linux/ve.h  |    1 +
>   4 files changed, 9 insertions(+), 11 deletions(-)
>
> Index: linux-pcs7.git/drivers/tty/n_tty.c
> ===================================================================
> --- linux-pcs7.git.orig/drivers/tty/n_tty.c
> +++ linux-pcs7.git/drivers/tty/n_tty.c
> @@ -50,6 +50,7 @@
>   #include <linux/uaccess.h>
>   #include <linux/module.h>
>   #include <linux/ratelimit.h>
> +#include <linux/ve.h>
>
>
>   /* number of characters left in xmit buffer before select has we have room */
> @@ -2043,8 +2044,7 @@ static ssize_t n_tty_write(struct tty_st
>   		}
>   #ifdef CONFIG_VE
>   		if (tty_hung_up_p(file) ||
> -		    (tty->link && !tty->link->count &&
> -		     !(test_bit(TTY_PINNED_BY_OTHER, &tty->link->flags)))) {
> +		    (tty->link && !tty->link->count && !vtty_is_master(tty->link))) {
>   #else
>   		if (tty_hung_up_p(file) || (tty->link && !tty->link->count)) {
>   #endif
> Index: linux-pcs7.git/drivers/tty/pty.c
> ===================================================================
> --- linux-pcs7.git.orig/drivers/tty/pty.c
> +++ linux-pcs7.git/drivers/tty/pty.c
> @@ -857,6 +857,12 @@ static struct file_operations vtty_fops;
>
>   #define vtty_match_index(idx)	((idx) >= 0 && (idx) < MAX_NR_VTTY_CONSOLES)
>
> +bool vtty_is_master(struct tty_struct *tty)
> +{
> +	return tty->driver == vttym_driver;
> +}
> +EXPORT_SYMBOL(vtty_is_master);
> +
>   typedef struct {
>   	envid_t			veid;
>   	struct tty_struct	*vttys[MAX_NR_VTTY_CONSOLES];
> @@ -1038,12 +1044,6 @@ static int vtty_install(struct tty_drive
>   	tty->link = peer;
>   	peer->link = tty;
>
> -	/*
> -	 * Defer master closing if a slave peer
> -	 * will be alive at this moment.
> -	 */
> -	set_bit(TTY_PINNED_BY_OTHER, &peer->flags);
> -
>   	vtty_map_set(map, tty);
>   	return 0;
>
> Index: linux-pcs7.git/include/linux/tty.h
> ===================================================================
> --- linux-pcs7.git.orig/include/linux/tty.h
> +++ linux-pcs7.git/include/linux/tty.h
> @@ -320,9 +320,6 @@ struct tty_file_private {
>   #define TTY_HUPPING 		21	/* ->hangup() in progress */
>   #define TTY_LDISC_HALTED	22	/* Line discipline is halted */
>   #define TTY_CHARGED		23	/* Charged as ub resource */
> -#ifdef CONFIG_VE
> -#define TTY_PINNED_BY_OTHER	24	/* TTY is pinned by other link end, defer closing */
> -#endif
>
>   #define TTY_WRITE_FLUSH(tty) tty_write_flush((tty))
>
> Index: linux-pcs7.git/include/linux/ve.h
> ===================================================================
> --- linux-pcs7.git.orig/include/linux/ve.h
> +++ linux-pcs7.git/include/linux/ve.h
> @@ -225,6 +225,7 @@ extern struct tty_driver *vtty_console_d
>   extern int vtty_open_master(envid_t veid, int idx);
>   extern void vtty_release(struct tty_struct *tty, struct tty_struct *o_tty,
>   			 int *tty_closing, int *o_tty_closing);
> +extern bool vtty_is_master(struct tty_struct *tty);
>   #endif /* CONFIG_TTY */
>
>   static inline int ve_mount_allowed(void)
> .
>


More information about the Devel mailing list