TTY: move pgrp killing
authorJiri Slaby <jslaby@suse.cz>
Wed, 9 Nov 2011 20:33:18 +0000 (21:33 +0100)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 15 Nov 2011 23:52:43 +0000 (15:52 -0800)
Move it to the only branch where tty_pgrp may be set. This is only a
cleanup which allows having tty_pgrp defined at that place.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Cc: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/tty/tty_io.c

index 05085beb83dbe31b49679735530fa4a5a42b8882..391cec3ce638804fb2fb254ce18775c7a9d97840 100644 (file)
@@ -790,19 +790,24 @@ static void session_clear_tty(struct pid *session)
 void disassociate_ctty(int on_exit)
 {
        struct tty_struct *tty;
-       struct pid *tty_pgrp = NULL;
 
        if (!current->signal->leader)
                return;
 
        tty = get_current_tty();
        if (tty) {
-               tty_pgrp = get_pid(tty->pgrp);
+               struct pid *tty_pgrp = get_pid(tty->pgrp);
                if (on_exit) {
                        if (tty->driver->type != TTY_DRIVER_TYPE_PTY)
                                tty_vhangup(tty);
                }
                tty_kref_put(tty);
+               if (tty_pgrp) {
+                       kill_pgrp(tty_pgrp, SIGHUP, on_exit);
+                       if (!on_exit)
+                               kill_pgrp(tty_pgrp, SIGCONT, on_exit);
+                       put_pid(tty_pgrp);
+               }
        } else if (on_exit) {
                struct pid *old_pgrp;
                spin_lock_irq(&current->sighand->siglock);
@@ -816,12 +821,6 @@ void disassociate_ctty(int on_exit)
                }
                return;
        }
-       if (tty_pgrp) {
-               kill_pgrp(tty_pgrp, SIGHUP, on_exit);
-               if (!on_exit)
-                       kill_pgrp(tty_pgrp, SIGCONT, on_exit);
-               put_pid(tty_pgrp);
-       }
 
        spin_lock_irq(&current->sighand->siglock);
        put_pid(current->signal->tty_old_pgrp);