aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/cfq-iosched.c7
1 files changed, 1 insertions, 6 deletions
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
index b24acf66d5b5..ee342826fd98 100644
--- a/block/cfq-iosched.c
+++ b/block/cfq-iosched.c
@@ -85,7 +85,6 @@ struct cfq_rb_root {
85 struct rb_root rb; 85 struct rb_root rb;
86 struct rb_node *left; 86 struct rb_node *left;
87 unsigned count; 87 unsigned count;
88 unsigned total_weight;
89 u64 min_vdisktime; 88 u64 min_vdisktime;
90 struct cfq_ttime ttime; 89 struct cfq_ttime ttime;
91}; 90};
@@ -979,9 +978,7 @@ static inline unsigned cfq_group_get_avg_queues(struct cfq_data *cfqd,
979static inline unsigned 978static inline unsigned
980cfq_group_slice(struct cfq_data *cfqd, struct cfq_group *cfqg) 979cfq_group_slice(struct cfq_data *cfqd, struct cfq_group *cfqg)
981{ 980{
982 struct cfq_rb_root *st = &cfqd->grp_service_tree; 981 return cfqd->cfq_target_latency * cfqg->vfraction >> CFQ_SERVICE_SHIFT;
983
984 return cfqd->cfq_target_latency * cfqg->weight / st->total_weight;
985} 982}
986 983
987static inline unsigned 984static inline unsigned
@@ -1273,7 +1270,6 @@ cfq_group_service_tree_add(struct cfq_rb_root *st, struct cfq_group *cfqg)
1273 1270
1274 cfq_update_group_weight(cfqg); 1271 cfq_update_group_weight(cfqg);
1275 __cfq_group_service_tree_add(st, cfqg); 1272 __cfq_group_service_tree_add(st, cfqg);
1276 st->total_weight += cfqg->weight;
1277 1273
1278 /* 1274 /*
1279 * Activate @cfqg and calculate the portion of vfraction @cfqg is 1275 * Activate @cfqg and calculate the portion of vfraction @cfqg is
@@ -1360,7 +1356,6 @@ cfq_group_service_tree_del(struct cfq_rb_root *st, struct cfq_group *cfqg)
1360 } 1356 }
1361 1357
1362 /* remove from the service tree */ 1358 /* remove from the service tree */
1363 st->total_weight -= cfqg->weight;
1364 if (!RB_EMPTY_NODE(&cfqg->rb_node)) 1359 if (!RB_EMPTY_NODE(&cfqg->rb_node))
1365 cfq_rb_erase(&cfqg->rb_node, st); 1360 cfq_rb_erase(&cfqg->rb_node, st);
1366} 1361}