mirror of
https://github.com/adulau/aha.git
synced 2024-12-28 11:46:19 +00:00
[PATCH] Don't need to disable interrupts for tasklist_lock
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
25034d7a83
commit
cf342e52e3
1 changed files with 9 additions and 4 deletions
13
fs/ioprio.c
13
fs/ioprio.c
|
@ -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 @@ free_uid:
|
||||||
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)
|
||||||
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)
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
read_unlock_irq(&tasklist_lock);
|
read_unlock(&tasklist_lock);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue