Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 04980706 authored by Peter Hurley's avatar Peter Hurley Committed by Greg Kroah-Hartman
Browse files

tty: Remove TTY_CLOSING



Now that re-open is not permitted for a legacy BSD pty master,
using TTY_CLOSING to indicate when a tty can be torn-down is
no longer necessary.

Reviewed-by: default avatarAlan Cox <alan@linux.intel.com>
Signed-off-by: default avatarPeter Hurley <peter@hurleysoftware.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent aa3cb814
Loading
Loading
Loading
Loading
+2 −12
Original line number Diff line number Diff line
@@ -1197,7 +1197,7 @@ void tty_write_message(struct tty_struct *tty, char *msg)
	if (tty) {
		mutex_lock(&tty->atomic_write_lock);
		tty_lock(tty);
		if (tty->ops->write && !test_bit(TTY_CLOSING, &tty->flags)) {
		if (tty->ops->write && tty->count > 0) {
			tty_unlock(tty);
			tty->ops->write(tty, msg, strlen(msg));
		} else
@@ -1879,16 +1879,6 @@ int tty_release(struct inode *inode, struct file *filp)
	/*
	 * Perform some housekeeping before deciding whether to return.
	 *
	 * Set the TTY_CLOSING flag if this was the last open.  In the
	 * case of a pty we may have to wait around for the other side
	 * to close, and TTY_CLOSING makes sure we can't be reopened.
	 */
	if (tty_closing)
		set_bit(TTY_CLOSING, &tty->flags);
	if (o_tty_closing)
		set_bit(TTY_CLOSING, &o_tty->flags);

	/*
	 * If _either_ side is closing, make sure there aren't any
	 * processes that still think tty or o_tty is their controlling
	 * tty.
@@ -1903,7 +1893,7 @@ int tty_release(struct inode *inode, struct file *filp)

	mutex_unlock(&tty_mutex);
	tty_unlock_pair(tty, o_tty);
	/* At this point the TTY_CLOSING flag should ensure a dead tty
	/* At this point, the tty->count == 0 should ensure a dead tty
	   cannot be re-opened by a racing opener */

	/* check whether both sides are closing ... */
+0 −1
Original line number Diff line number Diff line
@@ -316,7 +316,6 @@ struct tty_file_private {
#define TTY_EXCLUSIVE 		3	/* Exclusive open mode */
#define TTY_DEBUG 		4	/* Debugging */
#define TTY_DO_WRITE_WAKEUP 	5	/* Call write_wakeup after queuing new */
#define TTY_CLOSING 		7	/* ->close() in progress */
#define TTY_LDISC_OPEN	 	11	/* Line discipline is open */
#define TTY_PTY_LOCK 		16	/* pty private */
#define TTY_NO_WRITE_SPLIT 	17	/* Preserve write boundaries to driver */