cfq-iosched: Don't update group weights when on service tree
authorJustin TerAvest <teravest@google.com>
Thu, 17 Mar 2011 15:12:36 +0000 (16:12 +0100)
committerJens Axboe <jaxboe@fusionio.com>
Thu, 17 Mar 2011 15:12:36 +0000 (16:12 +0100)
commit8184f93eced1e304721c2a55c00d87d5a14f8907
treeb5ed43533eee883bc25920c191cb095584d29822
parent95f28604a65b1c40b6c6cd95e58439cd7ded3add
cfq-iosched: Don't update group weights when on service tree

Version 3 is updated to apply to for-2.6.39/core.

For version 2, I took Vivek's advice and made sure we update the group
weight from cfq_group_service_tree_add().

If a weight was updated while a group is on the service tree, the
calculation for the total weight of the service tree can be adjusted
improperly, which either leads to bad service tree weights, or
potentially crashes (if total_weight becomes 0).

This patch defers updates to the weight until a group is off the service
tree.

Signed-off-by: Justin TerAvest <teravest@google.com>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
block/cfq-iosched.c