]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/ioprio.c
[PATCH] swsusp: write speedup
[linux-2.6-omap-h63xx.git] / fs / ioprio.c
index 06578311c63f72a9f02527e9b45753a8a97dabab..78b1deae3fa2e1a9aaa4142fa83050b434840b90 100644 (file)
@@ -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;