summaryrefslogtreecommitdiff
path: root/block/elevator.c
diff options
context:
space:
mode:
authorAleksei Zakharov <zakharov.a.g@yandex.ru>2019-02-11 13:50:37 +0300
committerJens Axboe <axboe@kernel.dk>2019-02-11 18:21:40 +0300
commitfbd72127c975dc8e532ecc73d52f3b1b00935bec (patch)
tree43817ee93cf8c5baca17958ec6d93c5e4fe7d1a6 /block/elevator.c
parentb7143fe67bfc3b83a9e11371da659e1e70a1bbf3 (diff)
downloadlinux-fbd72127c975dc8e532ecc73d52f3b1b00935bec.tar.xz
block: avoid setting none scheduler if it's already none
There's no reason to freeze queue and remove scheduler if there's no scheduler already. Signed-off-by: Aleksei Zakharov <zakharov.a.g@yandex.ru> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/elevator.c')
-rw-r--r--block/elevator.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/block/elevator.c b/block/elevator.c
index f05e90d4e695..d6d835a08de6 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -667,8 +667,11 @@ static int __elevator_change(struct request_queue *q, const char *name)
/*
* Special case for mq, turn off scheduling
*/
- if (!strncmp(name, "none", 4))
+ if (!strncmp(name, "none", 4)) {
+ if (!q->elevator)
+ return 0;
return elevator_switch(q, NULL);
+ }
strlcpy(elevator_name, name, sizeof(elevator_name));
e = elevator_get(q, strstrip(elevator_name), true);