[B/C] [PATCH 2/2] block: avoid setting none scheduler if it's already none
Kai-Heng Feng
kai.heng.feng at canonical.com
Wed Apr 24 10:23:31 UTC 2019
From: Aleksei Zakharov <zakharov.a.g at yandex.ru>
BugLink: https://bugs.launchpad.net/bugs/1815733
There's no reason to freeze queue and remove scheduler
if there's no scheduler already.
Signed-off-by: Aleksei Zakharov <zakharov.a.g at yandex.ru>
Signed-off-by: Jens Axboe <axboe at kernel.dk>
(backported from commit fbd72127c975dc8e532ecc73d52f3b1b00935bec)
Signed-off-by: Kai-Heng Feng <kai.heng.feng at canonical.com>
---
block/elevator.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/block/elevator.c b/block/elevator.c
index 89a48a3a8c12..14259a524250 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -1090,8 +1090,11 @@ static int __elevator_change(struct request_queue *q, const char *name)
/*
* Special case for mq, turn off scheduling
*/
- if (q->mq_ops && !strncmp(name, "none", 4))
+ if (q->mq_ops && !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);
--
2.17.1
More information about the kernel-team
mailing list