Do free work if num_active == 0 and remove unnecessary tag
reset_entity_pointer.
Signed-off-by: Kemeng Shi <[email protected]>
---
block/bfq-iosched.c | 10 ++++------
1 file changed, 4 insertions(+), 6 deletions(-)
diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c
index dd9a51255a0f..1402dfd9f448 100644
--- a/block/bfq-iosched.c
+++ b/block/bfq-iosched.c
@@ -950,13 +950,11 @@ void __bfq_weights_tree_remove(struct bfq_data *bfqd,
return;
bfqq->weight_counter->num_active--;
- if (bfqq->weight_counter->num_active > 0)
- goto reset_entity_pointer;
-
- rb_erase_cached(&bfqq->weight_counter->weights_node, root);
- kfree(bfqq->weight_counter);
+ if (bfqq->weight_counter->num_active == 0) {
+ rb_erase_cached(&bfqq->weight_counter->weights_node, root);
+ kfree(bfqq->weight_counter);
+ }
-reset_entity_pointer:
bfqq->weight_counter = NULL;
bfq_put_queue(bfqq);
}
--
2.30.0