aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/bfq-wf2q.c13
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,
1114bool __bfq_deactivate_entity(struct bfq_entity *entity, bool ins_into_idle_tree) 1114bool __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