Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a87182c authored by Bart Van Assche's avatar Bart Van Assche Committed by Jens Axboe
Browse files

block: Optimize ioprio_best()



Since ioprio_best() translates IOPRIO_CLASS_NONE into IOPRIO_CLASS_BE
and since lower numerical priority values represent a higher priority
a simple numerical comparison is sufficient.

Signed-off-by: default avatarBart Van Assche <bart.vanassche@sandisk.com>
Reviewed-by: default avatarAdam Manzanares <adam.manzanares@wdc.com>
Tested-by: default avatarAdam Manzanares <adam.manzanares@wdc.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Cc: Matias Bjørling <m@bjorling.me>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 0be0dee6
Loading
Loading
Loading
Loading
+1 −11
Original line number Diff line number Diff line
@@ -163,22 +163,12 @@ static int get_task_ioprio(struct task_struct *p)

int ioprio_best(unsigned short aprio, unsigned short bprio)
{
	unsigned short aclass;
	unsigned short bclass;

	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)
		return bprio;
	else
		return aprio;
}

SYSCALL_DEFINE2(ioprio_get, int, which, int, who)