Files
linux/include/linux
Tejun Heo 7dd3db54e7 job control: introduce task_set_jobctl_pending()
task->jobctl currently hosts JOBCTL_STOP_PENDING and will host TRAP
pending bits too.  Setting pending conditions on a dying task may make
the task unkillable.  Currently, each setting site is responsible for
checking for the condition but with to-be-added job control traps this
becomes too fragile.

This patch adds task_set_jobctl_pending() which should be used when
setting task->jobctl bits to schedule a stop or trap.  The function
performs the followings to ease setting pending bits.

* Sanity checks.

* If fatal signal is pending or PF_EXITING is set, no bit is set.

* STOP_SIGMASK is automatically cleared if new value is being set.

do_signal_stop() and ptrace_attach() are updated to use
task_set_jobctl_pending() instead of setting STOP_PENDING explicitly.
The surrounding structures around setting are changed to fit
task_set_jobctl_pending() better but there should be no userland
visible behavior difference.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Oleg Nesterov <oleg@redhat.com>
Signed-off-by: Oleg Nesterov <oleg@redhat.com>
2011-06-04 18:17:11 +02:00
..
2011-05-26 19:45:40 +02:00
2011-06-01 11:36:49 +01:00
2011-05-28 17:41:46 +02:00
2011-05-31 13:45:53 +02:00
2011-05-26 17:12:34 -07:00
2011-05-26 17:12:34 -07:00
2011-05-29 13:03:09 +01:00
2011-05-26 12:03:50 -07:00
2011-05-25 20:43:32 +02:00
2011-05-26 17:12:37 -07:00
2011-05-25 08:39:52 -07:00
2011-05-29 11:32:28 -07:00
2011-05-26 17:12:36 -07:00
2011-05-29 20:54:36 +03:00
2011-05-26 17:12:34 -07:00
2011-05-26 17:12:37 -07:00
2011-05-25 08:39:19 -07:00
2011-05-26 13:38:58 +10:00
2011-05-30 11:14:16 +09:30