projects
/
powerpc.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ahci: use 0x80 as wait stat value instead of 0xff
[powerpc.git]
/
fs
/
ioprio.c
diff --git
a/fs/ioprio.c
b/fs/ioprio.c
index
78b1dea
..
89e8da1
100644
(file)
--- a/
fs/ioprio.c
+++ b/
fs/ioprio.c
@@
-1,7
+1,7
@@
/*
* fs/ioprio.c
*
/*
* fs/ioprio.c
*
- * Copyright (C) 2004 Jens Axboe <axboe@
suse.de
>
+ * Copyright (C) 2004 Jens Axboe <axboe@
kernel.dk
>
*
* Helper functions for setting/querying io priorities of processes. The
* system calls closely mimmick getpriority/setpriority, see the man page for
*
* Helper functions for setting/querying io priorities of processes. The
* system calls closely mimmick getpriority/setpriority, see the man page for
@@
-47,8
+47,8
@@
static int set_task_ioprio(struct task_struct *task, int ioprio)
/* see wmb() in current_io_context() */
smp_read_barrier_depends();
/* see wmb() in current_io_context() */
smp_read_barrier_depends();
- if (ioc
&& ioc->set_ioprio
)
- ioc->
set_ioprio(ioc, ioprio)
;
+ if (ioc)
+ ioc->
ioprio_changed = 1
;
task_unlock(task);
return 0;
task_unlock(task);
return 0;
@@
-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) {
case IOPRIO_WHO_PROCESS:
if (!who)
switch (which) {
case IOPRIO_WHO_PROCESS:
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;
}
@@
-145,11
+150,6
@@
int ioprio_best(unsigned short aprio, unsigned short bprio)
unsigned short aclass = IOPRIO_PRIO_CLASS(aprio);
unsigned short bclass = IOPRIO_PRIO_CLASS(bprio);
unsigned short aclass = IOPRIO_PRIO_CLASS(aprio);
unsigned short bclass = IOPRIO_PRIO_CLASS(bprio);
- if (!ioprio_valid(aprio))
- return bprio;
- if (!ioprio_valid(bprio))
- return aprio;
-
if (aclass == IOPRIO_CLASS_NONE)
aclass = IOPRIO_CLASS_BE;
if (bclass == IOPRIO_CLASS_NONE)
if (aclass == IOPRIO_CLASS_NONE)
aclass = IOPRIO_CLASS_BE;
if (bclass == IOPRIO_CLASS_NONE)
@@
-170,7
+170,7
@@
asmlinkage long sys_ioprio_get(int which, int who)
int ret = -ESRCH;
int tmpio;
int ret = -ESRCH;
int tmpio;
- read_lock
_irq
(&tasklist_lock);
+ read_lock(&tasklist_lock);
switch (which) {
case IOPRIO_WHO_PROCESS:
if (!who)
switch (which) {
case IOPRIO_WHO_PROCESS:
if (!who)
@@
-221,7
+221,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;
}