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);
        }
 }

Reply via email to