提交 cf342e52 编写于 作者: O Oleg Nesterov 提交者: Jens Axboe

[PATCH] Don't need to disable interrupts for tasklist_lock

Signed-off-by: NOleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: NJens Axboe <axboe@kernel.dk>
上级 25034d7a
...@@ -81,7 +81,12 @@ asmlinkage long sys_ioprio_set(int which, int who, int ioprio) ...@@ -81,7 +81,12 @@ asmlinkage long sys_ioprio_set(int which, int who, int ioprio)
} }
ret = -ESRCH; ret = -ESRCH;
read_lock_irq(&tasklist_lock); /*
* We want IOPRIO_WHO_PGRP/IOPRIO_WHO_USER to be "atomic",
* so we can't use rcu_read_lock(). See re-copy of ->ioprio
* in copy_process().
*/
read_lock(&tasklist_lock);
switch (which) { switch (which) {
case IOPRIO_WHO_PROCESS: case IOPRIO_WHO_PROCESS:
if (!who) if (!who)
...@@ -124,7 +129,7 @@ asmlinkage long sys_ioprio_set(int which, int who, int ioprio) ...@@ -124,7 +129,7 @@ asmlinkage long sys_ioprio_set(int which, int who, int ioprio)
ret = -EINVAL; ret = -EINVAL;
} }
read_unlock_irq(&tasklist_lock); read_unlock(&tasklist_lock);
return ret; return ret;
} }
...@@ -170,7 +175,7 @@ asmlinkage long sys_ioprio_get(int which, int who) ...@@ -170,7 +175,7 @@ asmlinkage long sys_ioprio_get(int which, int who)
int ret = -ESRCH; int ret = -ESRCH;
int tmpio; int tmpio;
read_lock_irq(&tasklist_lock); read_lock(&tasklist_lock);
switch (which) { switch (which) {
case IOPRIO_WHO_PROCESS: case IOPRIO_WHO_PROCESS:
if (!who) if (!who)
...@@ -221,7 +226,7 @@ asmlinkage long sys_ioprio_get(int which, int who) ...@@ -221,7 +226,7 @@ asmlinkage long sys_ioprio_get(int which, int who)
ret = -EINVAL; ret = -EINVAL;
} }
read_unlock_irq(&tasklist_lock); read_unlock(&tasklist_lock);
return ret; return ret;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册