|
@@ -130,10 +130,14 @@ static bool bfq_update_next_in_service(struct bfq_sched_data *sd,
|
|
if (!change_without_lookup) /* lookup needed */
|
|
if (!change_without_lookup) /* lookup needed */
|
|
next_in_service = bfq_lookup_next_entity(sd, expiration);
|
|
next_in_service = bfq_lookup_next_entity(sd, expiration);
|
|
|
|
|
|
- if (next_in_service)
|
|
|
|
- parent_sched_may_change = !sd->next_in_service ||
|
|
|
|
|
|
+ if (next_in_service) {
|
|
|
|
+ bool new_budget_triggers_change =
|
|
bfq_update_parent_budget(next_in_service);
|
|
bfq_update_parent_budget(next_in_service);
|
|
|
|
|
|
|
|
+ parent_sched_may_change = !sd->next_in_service ||
|
|
|
|
+ new_budget_triggers_change;
|
|
|
|
+ }
|
|
|
|
+
|
|
sd->next_in_service = next_in_service;
|
|
sd->next_in_service = next_in_service;
|
|
|
|
|
|
if (!next_in_service)
|
|
if (!next_in_service)
|