diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2006-09-29 05:00:52 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-29 12:18:18 -0400 |
commit | 5b160f5ecd2f1b6df2e0015dc1f319c8ef803d62 (patch) | |
tree | ff7f77b4178299146d6450f01f5d1da769c3fda9 /kernel/fork.c | |
parent | 1c573afebc6213e4372e0d8352034c23d5262e1f (diff) |
[PATCH] copy_process: cosmetic ->ioprio tweak
copy_process:
// holds tasklist_lock + ->siglock
/*
* inherit ioprio
*/
p->ioprio = current->ioprio;
Why? ->ioprio was already copied in dup_task_struct(). I guess this is
needed to ensure that the child can't escape
sys_ioprio_set(IOPRIO_WHO_{PGRP,USER}), yes?
In that case we don't need ->siglock held, and the comment should be
updated.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Jens Axboe <axboe@suse.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index bca6ce6d3de..1c999f3e0b4 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -1150,7 +1150,6 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1150 | 1150 | ||
1151 | /* Our parent execution domain becomes current domain | 1151 | /* Our parent execution domain becomes current domain |
1152 | These must match for thread signalling to apply */ | 1152 | These must match for thread signalling to apply */ |
1153 | |||
1154 | p->parent_exec_id = p->self_exec_id; | 1153 | p->parent_exec_id = p->self_exec_id; |
1155 | 1154 | ||
1156 | /* ok, now we should be set up.. */ | 1155 | /* ok, now we should be set up.. */ |
@@ -1173,6 +1172,9 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1173 | /* Need tasklist lock for parent etc handling! */ | 1172 | /* Need tasklist lock for parent etc handling! */ |
1174 | write_lock_irq(&tasklist_lock); | 1173 | write_lock_irq(&tasklist_lock); |
1175 | 1174 | ||
1175 | /* for sys_ioprio_set(IOPRIO_WHO_PGRP) */ | ||
1176 | p->ioprio = current->ioprio; | ||
1177 | |||
1176 | /* | 1178 | /* |
1177 | * The task hasn't been attached yet, so its cpus_allowed mask will | 1179 | * The task hasn't been attached yet, so its cpus_allowed mask will |
1178 | * not be changed, nor will its assigned CPU. | 1180 | * not be changed, nor will its assigned CPU. |
@@ -1232,11 +1234,6 @@ static struct task_struct *copy_process(unsigned long clone_flags, | |||
1232 | } | 1234 | } |
1233 | } | 1235 | } |
1234 | 1236 | ||
1235 | /* | ||
1236 | * inherit ioprio | ||
1237 | */ | ||
1238 | p->ioprio = current->ioprio; | ||
1239 | |||
1240 | if (likely(p->pid)) { | 1237 | if (likely(p->pid)) { |
1241 | add_parent(p); | 1238 | add_parent(p); |
1242 | if (unlikely(p->ptrace & PT_PTRACED)) | 1239 | if (unlikely(p->ptrace & PT_PTRACED)) |