diff options
-rw-r--r-- | block/bfq-wf2q.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/block/bfq-wf2q.c b/block/bfq-wf2q.c index b4fc3e4260b7..8726ede19eef 100644 --- a/block/bfq-wf2q.c +++ b/block/bfq-wf2q.c | |||
@@ -1114,12 +1114,21 @@ static void bfq_activate_requeue_entity(struct bfq_entity *entity, | |||
1114 | bool __bfq_deactivate_entity(struct bfq_entity *entity, bool ins_into_idle_tree) | 1114 | bool __bfq_deactivate_entity(struct bfq_entity *entity, bool ins_into_idle_tree) |
1115 | { | 1115 | { |
1116 | struct bfq_sched_data *sd = entity->sched_data; | 1116 | struct bfq_sched_data *sd = entity->sched_data; |
1117 | struct bfq_service_tree *st = bfq_entity_service_tree(entity); | 1117 | struct bfq_service_tree *st; |
1118 | int is_in_service = entity == sd->in_service_entity; | 1118 | bool is_in_service; |
1119 | 1119 | ||
1120 | if (!entity->on_st) /* entity never activated, or already inactive */ | 1120 | if (!entity->on_st) /* entity never activated, or already inactive */ |
1121 | return false; | 1121 | return false; |
1122 | 1122 | ||
1123 | /* | ||
1124 | * If we get here, then entity is active, which implies that | ||
1125 | * bfq_group_set_parent has already been invoked for the group | ||
1126 | * represented by entity. Therefore, the field | ||
1127 | * entity->sched_data has been set, and we can safely use it. | ||
1128 | */ | ||
1129 | st = bfq_entity_service_tree(entity); | ||
1130 | is_in_service = entity == sd->in_service_entity; | ||
1131 | |||
1123 | if (is_in_service) | 1132 | if (is_in_service) |
1124 | bfq_calc_finish(entity, entity->service); | 1133 | bfq_calc_finish(entity, entity->service); |
1125 | 1134 | ||