|
|
@@ -157,14 +157,16 @@ static int get_task_ioprio(struct task_struct *p)
|
|
|
|
|
|
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;
|
|
|
+ unsigned short bclass;
|
|
|
|
|
|
- if (aclass == IOPRIO_CLASS_NONE)
|
|
|
- aclass = IOPRIO_CLASS_BE;
|
|
|
- if (bclass == IOPRIO_CLASS_NONE)
|
|
|
- bclass = IOPRIO_CLASS_BE;
|
|
|
+ if (!ioprio_valid(aprio))
|
|
|
+ aprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, IOPRIO_NORM);
|
|
|
+ if (!ioprio_valid(bprio))
|
|
|
+ bprio = IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, IOPRIO_NORM);
|
|
|
|
|
|
+ aclass = IOPRIO_PRIO_CLASS(aprio);
|
|
|
+ bclass = IOPRIO_PRIO_CLASS(bprio);
|
|
|
if (aclass == bclass)
|
|
|
return min(aprio, bprio);
|
|
|
if (aclass > bclass)
|