mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-03 12:52:52 +00:00
[PATCH] pid: Implement transfer_pid and use it to simplify de_thread
In de_thread we move pids from one process to another, a rather ugly case. The function transfer_pid makes it clear what we are doing, and makes the action atomic. This is useful we ever want to atomically traverse the process group and session lists, in a rcu safe manner. Even if the atomic properties this change should be a win as transfer_pid should be less code to execute than executing both attach_pid and detach_pid, and this should make de_thread slightly smaller as only a single function call needs to be emitted. The only downside is that the code might be slower to execute as the odds are against transfer_pid being in cache. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Cc: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
35fa2048ab
commit
c18258c6f0
3 changed files with 15 additions and 7 deletions
|
@ -76,6 +76,8 @@ extern int FASTCALL(attach_pid(struct task_struct *task,
|
|||
enum pid_type type, int nr));
|
||||
|
||||
extern void FASTCALL(detach_pid(struct task_struct *task, enum pid_type));
|
||||
extern void FASTCALL(transfer_pid(struct task_struct *old,
|
||||
struct task_struct *new, enum pid_type));
|
||||
|
||||
/*
|
||||
* look up a PID in the hash table. Must be called with the tasklist_lock
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue