2004-10-01 11:15:29

by Oleg Nesterov

[permalink] [raw]
Subject: [PATCH 2/2] detach_pid(): eliminate one find_pid() call

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