Commit 80d26af8 authored by Mandeep Singh Baines's avatar Mandeep Singh Baines Committed by Linus Torvalds

coredump: use a freezable_schedule for the coredump_finish wait

Prevents hung_task detector from panicing the machine. This is also
needed to prevent this wait from blocking suspend.

(It doesnt' currently block suspend but it would once the next
patch in this series is applied.)

[yongjun_wei@trendmicro.com.cn: kernel/exit.c: remove duplicated include]
Signed-off-by: default avatarMandeep Singh Baines <msb@chromium.org>
Cc: Ben Chan <benchan@chromium.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Tejun Heo <tj@kernel.org>
Cc: Rafael J. Wysocki <rjw@sisk.pl>
Cc: Ingo Molnar <mingo@redhat.com>
Signed-off-by: default avatarWei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 6aa97070
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <linux/tsacct_kern.h> #include <linux/tsacct_kern.h>
#include <linux/file.h> #include <linux/file.h>
#include <linux/fdtable.h> #include <linux/fdtable.h>
#include <linux/freezer.h>
#include <linux/binfmts.h> #include <linux/binfmts.h>
#include <linux/nsproxy.h> #include <linux/nsproxy.h>
#include <linux/pid_namespace.h> #include <linux/pid_namespace.h>
...@@ -31,7 +32,6 @@ ...@@ -31,7 +32,6 @@
#include <linux/mempolicy.h> #include <linux/mempolicy.h>
#include <linux/taskstats_kern.h> #include <linux/taskstats_kern.h>
#include <linux/delayacct.h> #include <linux/delayacct.h>
#include <linux/freezer.h>
#include <linux/cgroup.h> #include <linux/cgroup.h>
#include <linux/syscalls.h> #include <linux/syscalls.h>
#include <linux/signal.h> #include <linux/signal.h>
...@@ -485,7 +485,7 @@ static void exit_mm(struct task_struct * tsk) ...@@ -485,7 +485,7 @@ static void exit_mm(struct task_struct * tsk)
set_task_state(tsk, TASK_UNINTERRUPTIBLE); set_task_state(tsk, TASK_UNINTERRUPTIBLE);
if (!self.task) /* see coredump_finish() */ if (!self.task) /* see coredump_finish() */
break; break;
schedule(); freezable_schedule();
} }
__set_task_state(tsk, TASK_RUNNING); __set_task_state(tsk, TASK_RUNNING);
down_read(&mm->mmap_sem); down_read(&mm->mmap_sem);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment