Again, I am not sure this make sense as a cleanup, up to you.
But utrace_release_task() can check UTRACE_EVENT(REAP) and
optimize out utrace_reap() when there are no attached engines.

Signed-off-by: Oleg Nesterov <o...@redhat.com>
---

 kernel/utrace.c |    4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- __UTRACE/kernel/utrace.c~4_CK_REAP  2009-09-06 15:06:23.000000000 +0200
+++ __UTRACE/kernel/utrace.c    2009-09-06 15:37:33.000000000 +0200
@@ -442,7 +442,9 @@ void utrace_release_task(struct task_str
 
        utrace->reap = 1;
 
-       if (!(target->utrace_flags & _UTRACE_DEATH_EVENTS)) {
+       if ((target->utrace_flags &
+                       (UTRACE_EVENT(REAP) & _UTRACE_DEATH_EVENTS)) ==
+                        UTRACE_EVENT(REAP)) {
                utrace_reap(target, utrace); /* Unlocks and frees.  */
                return;
        }

Reply via email to