diff options
author | marcel <marcel@FreeBSD.org> | 2014-02-16 20:37:39 +0000 |
---|---|---|
committer | marcel <marcel@FreeBSD.org> | 2014-02-16 20:37:39 +0000 |
commit | 091cb7eeead861afb7b7435107b27bc02db862b7 (patch) | |
tree | e356cf823a0d157c7d5165bdefc03d8948bdf6b1 /sys/kern/tty.c | |
parent | 6c90e2f6f5fb6d9ef6c6dab9355bba8c385b56d5 (diff) | |
download | FreeBSD-src-091cb7eeead861afb7b7435107b27bc02db862b7.zip FreeBSD-src-091cb7eeead861afb7b7435107b27bc02db862b7.tar.gz |
MFC r259441:
Properly drain the TTY when both revoke(2) and close(2) end up closing
the TTY.
Diffstat (limited to 'sys/kern/tty.c')
-rw-r--r-- | sys/kern/tty.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/kern/tty.c b/sys/kern/tty.c index 4fce607..e181d1e 100644 --- a/sys/kern/tty.c +++ b/sys/kern/tty.c @@ -191,8 +191,10 @@ ttydev_leave(struct tty *tp) /* Drain any output. */ MPASS((tp->t_flags & TF_STOPPED) == 0); - if (!tty_gone(tp)) - tty_drain(tp); + if (!tty_gone(tp)) { + while (tty_drain(tp) == ERESTART) + ; + } ttydisc_close(tp); |