diff --git a/block/bfq-iosched.c b/block/bfq-iosched.c index 9078299ffe3daa450efb10c7aa2e45f2934a4aa7..fe4255698d810ce85ac70e2130a040122c34458e 100644 --- a/block/bfq-iosched.c +++ b/block/bfq-iosched.c @@ -5381,6 +5381,7 @@ static void bfq_exit_queue(struct elevator_queue *e) { struct bfq_data *bfqd = e->elevator_data; struct bfq_queue *bfqq, *n; + struct request_queue *q = bfqd->queue; hrtimer_cancel(&bfqd->idle_slice_timer); @@ -5404,6 +5405,9 @@ static void bfq_exit_queue(struct elevator_queue *e) #endif kfree(bfqd); + + /* Re-enable throttling in case elevator disabled it */ + wbt_enable_default(q); } static void bfq_init_root_group(struct bfq_group *root_group, diff --git a/block/elevator.c b/block/elevator.c index 70ea9f3e64d7e97aeb96136cd75e6a1810a3bdb0..9621a812319e74bf077ce2132c270f87d88b5380 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -876,8 +876,6 @@ void elv_unregister_queue(struct request_queue *q) kobject_uevent(&e->kobj, KOBJ_REMOVE); kobject_del(&e->kobj); e->registered = 0; - /* Re-enable throttling in case elevator disabled it */ - wbt_enable_default(q); } }