浏览代码

tty: Push the bkl down a bit in the hangup code

We know that the redirect field is handled via its own locking in all
places

Signed-off-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Alan Cox 15 年之前
父节点
当前提交
38c70b27f9
共有 1 个文件被更改,包括 2 次插入2 次删除
  1. 2 2
      drivers/char/tty_io.c

+ 2 - 2
drivers/char/tty_io.c

@@ -505,8 +505,6 @@ static void do_tty_hangup(struct work_struct *work)
 	if (!tty)
 	if (!tty)
 		return;
 		return;
 
 
-	/* inuse_filps is protected by the single kernel lock */
-	lock_kernel();
 
 
 	spin_lock(&redirect_lock);
 	spin_lock(&redirect_lock);
 	if (redirect && redirect->private_data == tty) {
 	if (redirect && redirect->private_data == tty) {
@@ -515,6 +513,8 @@ static void do_tty_hangup(struct work_struct *work)
 	}
 	}
 	spin_unlock(&redirect_lock);
 	spin_unlock(&redirect_lock);
 
 
+	/* inuse_filps is protected by the single kernel lock */
+	lock_kernel();
 	check_tty_count(tty, "do_tty_hangup");
 	check_tty_count(tty, "do_tty_hangup");
 	file_list_lock();
 	file_list_lock();
 	/* This breaks for file handles being sent over AF_UNIX sockets ? */
 	/* This breaks for file handles being sent over AF_UNIX sockets ? */