diff options
Diffstat (limited to 'fs/ioprio.c')
| -rw-r--r-- | fs/ioprio.c | 23 | 
1 files changed, 23 insertions, 0 deletions
diff --git a/fs/ioprio.c b/fs/ioprio.c index 06578311c63..78b1deae3fa 100644 --- a/fs/ioprio.c +++ b/fs/ioprio.c @@ -140,6 +140,29 @@ out:  	return ret;  } +int ioprio_best(unsigned short aprio, unsigned short 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) +		bclass = IOPRIO_CLASS_BE; + +	if (aclass == bclass) +		return min(aprio, bprio); +	if (aclass > bclass) +		return bprio; +	else +		return aprio; +} +  asmlinkage long sys_ioprio_get(int which, int who)  {  	struct task_struct *g, *p;  |