[PATCH 3/3] utrace_set_events: kill now unnecessary exit_state/reap checks

Oleg Nesterov oleg at redhat.com
Mon Aug 16 09:39:31 UTC 2010


Now that get_utrace_lock() can never succeed if utrace->reap is true,
we can kill this check in utrace_set_events(). This also means we can
kill the target->exit_state check, it buys nothing now.

Signed-off-by: Oleg Nesterov <oleg at redhat.com>
---

 kernel/utrace.c |   13 ++++---------
 1 file changed, 4 insertions(+), 9 deletions(-)

--- kstub/kernel/utrace.c~7_set_events_kill_reap	2010-08-16 11:17:51.000000000 +0200
+++ kstub/kernel/utrace.c	2010-08-16 11:28:00.000000000 +0200
@@ -539,15 +539,10 @@ int utrace_set_events(struct task_struct
 	old_utrace_flags = target->utrace_flags;
 	old_flags = engine->flags & ~ENGINE_STOP;
 
-	/* If ->death or ->reap is true we must see exit_state != 0. */
-	if (target->exit_state) {
-		if (utrace->death) {
-			if ((old_flags & ~events) &  _UTRACE_DEATH_EVENTS)
-				goto unlock;
-		} else if (utrace->reap) {
-			if ((old_flags ^ events) & UTRACE_EVENT(REAP))
-				goto unlock;
-		}
+	if ((old_flags & ~events) &  _UTRACE_DEATH_EVENTS) {
+		/* Too late if utrace_report_death() is in progress */
+		if (utrace->death)
+			goto unlock;
 	}
 
 	/*




More information about the utrace-devel mailing list