tty: fix race in tty_fasync
[safe/jmp/linux-2.6] / drivers / char / tty_io.c
index f15df40..c6f3b48 100644 (file)
@@ -1951,8 +1951,8 @@ static int tty_fasync(int fd, struct file *filp, int on)
                        pid = task_pid(current);
                        type = PIDTYPE_PID;
                }
-               spin_unlock_irqrestore(&tty->ctrl_lock, flags);
                retval = __f_setown(filp, pid, type, 0);
+               spin_unlock_irqrestore(&tty->ctrl_lock, flags);
                if (retval)
                        goto out;
        } else {