filp->f_op->write never equals to tty_write for the console device, so[...]
closecount++ is never reached and we don't close console device so many
times we open it before. (The closecount is used only for /dev/console.)
drivers/char/tty_io.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/char/tty_io.c b/drivers/char/tty_io.c
index c9e6e24..8c7b6ed 100644
--- a/drivers/char/tty_io.c
+++ b/drivers/char/tty_io.c
@@ -1434,9 +1434,9 @@ static void do_tty_hangup(struct work_struct *work)
list_for_each_entry(filp, &tty->tty_files, f_u.fu_list) {
if (filp->f_op->write == redirected_tty_write)
cons_filp = filp;
+ closecount++;
if (filp->f_op->write != tty_write)
continue;
- closecount++;