diff options
author | Jan Kara <jack@suse.cz> | 2017-04-19 11:33:27 +0200 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2017-04-19 08:49:03 -0600 |
commit | 8330cdb0fe55c9a9a8e440e56c19233229e0e259 (patch) | |
tree | 644af58ba64f8cb431d01abaff81113b4ed6a835 /block/elevator.c | |
parent | ea25da48086d3bbebf3a2eeff387ea00ed96f5c4 (diff) | |
download | lwn-8330cdb0fe55c9a9a8e440e56c19233229e0e259.tar.gz lwn-8330cdb0fe55c9a9a8e440e56c19233229e0e259.zip |
block: Make writeback throttling defaults consistent for SQ devices
When CFQ is used as an elevator, it disables writeback throttling
because they don't play well together. Later when a different elevator
is chosen for the device, writeback throttling doesn't get enabled
again as it should. Make sure CFQ enables writeback throttling (if it
should be enabled by default) when we switch from it to another IO
scheduler.
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <axboe@fb.com>
Diffstat (limited to 'block/elevator.c')
-rw-r--r-- | block/elevator.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/block/elevator.c b/block/elevator.c index dbeecf7be719..fb50416b5aae 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -41,6 +41,7 @@ #include "blk.h" #include "blk-mq-sched.h" +#include "blk-wbt.h" static DEFINE_SPINLOCK(elv_list_lock); static LIST_HEAD(elv_list); @@ -877,6 +878,8 @@ 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); } } EXPORT_SYMBOL(elv_unregister_queue); |