block, bfq: get a ref to a group when adding it to a service tree
authorPaolo Valente <paolo.valente@linaro.org>
Mon, 3 Feb 2020 10:40:59 +0000 (11:40 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 Mar 2020 12:00:32 +0000 (13:00 +0100)
commit92ed51e65167a6652814db370db22cefb0547257
tree2ce57fddf4fb9fc9c8a4cc16f2d59caf25624642
parente657b1f6b9f414c7b0ca823ce44c6984b6e309cf
block, bfq: get a ref to a group when adding it to a service tree

commit db37a34c563bf4692b36990ae89005c031385e52 upstream.

BFQ schedules generic entities, which may represent either bfq_queues
or groups of bfq_queues. When an entity is inserted into a service
tree, a reference must be taken, to make sure that the entity does not
disappear while still referred in the tree. Unfortunately, such a
reference is mistakenly taken only if the entity represents a
bfq_queue. This commit takes a reference also in case the entity
represents a group.

Tested-by: Oleksandr Natalenko <oleksandr@natalenko.name>
Tested-by: Chris Evich <cevich@redhat.com>
Signed-off-by: Paolo Valente <paolo.valente@linaro.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
block/bfq-cgroup.c
block/bfq-iosched.h
block/bfq-wf2q.c