If the tracee stops in utrace_finish_vfork(), we lose ->resume_action. Change utrace_report_clone() to call utrace_set_resume() when we know we are going to stop.
Signed-off-by: Oleg Nesterov <o...@redhat.com> --- kernel/utrace.c | 1 + 1 file changed, 1 insertion(+) --- UTRACE-PTRACE/kernel/utrace.c~4_CLONE_USE_SET_RESUME 2009-11-19 02:55:42.000000000 +0100 +++ UTRACE-PTRACE/kernel/utrace.c 2009-11-19 03:03:02.000000000 +0100 @@ -1685,6 +1685,7 @@ void utrace_report_clone(unsigned long c if (report.action == UTRACE_STOP && (clone_flags & CLONE_VFORK)) { spin_lock(&utrace->lock); utrace->vfork_stop = 1; + utrace_set_resume(utrace, report.resume_action); spin_unlock(&utrace->lock); } }