]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - block/bfq-iosched.c
Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[karo-tx-linux.git] / block / bfq-iosched.c
index 12bbc6b8657dd686b918f27a3d5f2d7db133d778..60a6835265fc386a229ec96338eb735c7dbea65b 100644 (file)
@@ -3483,11 +3483,17 @@ static void bfq_update_wr_data(struct bfq_data *bfqd, struct bfq_queue *bfqq)
                        }
                }
        }
-       /* Update weight both if it must be raised and if it must be lowered */
+       /*
+        * To improve latency (for this or other queues), immediately
+        * update weight both if it must be raised and if it must be
+        * lowered. Since, entity may be on some active tree here, and
+        * might have a pending change of its ioprio class, invoke
+        * next function with the last parameter unset (see the
+        * comments on the function).
+        */
        if ((entity->weight > entity->orig_weight) != (bfqq->wr_coeff > 1))
-               __bfq_entity_update_weight_prio(
-                       bfq_entity_service_tree(entity),
-                       entity);
+               __bfq_entity_update_weight_prio(bfq_entity_service_tree(entity),
+                                               entity, false);
 }
 
 /*