[CRIU] [PATCH] ptrace: Send signals with final state explicitly

Pavel Emelyanov xemul at parallels.com
Fri Feb 3 05:49:57 EST 2012


According to Oleg the PTRACE_KILL doesn't and was-not-supposed-to work.
Thus, kill tasks to final state explicitly and just detach from them.

Signed-off-by: Pavel Emelyanov <xemul at parallels.com>

---

-------------- next part --------------
diff --git a/ptrace.c b/ptrace.c
index 7b1b128..8a44d81 100644
--- a/ptrace.c
+++ b/ptrace.c
@@ -21,15 +21,14 @@
 
 int unseize_task(pid_t pid, enum cr_task_state st)
 {
-	if (st == CR_TASK_STOP)
-		return ptrace(PTRACE_DETACH, pid, NULL, NULL);
-	else if (st == CR_TASK_KILL) {
+	if (st == CR_TASK_KILL)
 		kill(pid, SIGKILL);
-		return ptrace(PTRACE_KILL, pid, NULL, NULL);
-	} else {
-		BUG_ON(1);
-		return -1;
-	}
+	else if (st == CR_TASK_STOP)
+		kill(pid, SIGSTOP);
+	else
+		pr_err("Unknown final state %d\n", st);
+
+	return ptrace(PTRACE_DETACH, pid, NULL, NULL);
 }
 
 /*


More information about the CRIU mailing list