Hello.
Now there is no point in calling costly find_pid(type)
if __detach_pid(type) returned non zero value.
Oleg.
Signed-off-by: Oleg Nesterov <[email protected]>
--- 2.6.9-rc3/kernel/pid.c~ Fri Oct 1 13:29:14 2004
+++ 2.6.9-rc3/kernel/pid.c Fri Oct 1 15:12:32 2004
@@ -206,15 +206,16 @@ static fastcall int __detach_pid(task_t
void fastcall detach_pid(task_t *task, enum pid_type type)
{
- int nr;
+ int tmp, nr;
nr = __detach_pid(task, type);
if (!nr)
return;
- for (type = 0; type < PIDTYPE_MAX; ++type)
- if (find_pid(type, nr))
+ for (tmp = PIDTYPE_MAX; --tmp >= 0; )
+ if (tmp != type && find_pid(tmp, nr))
return;
+
free_pidmap(nr);
}