From 6313cf60d5471a0120ae78cc2670251bc1e5006b Mon Sep 17 00:00:00 2001 From: Aleksei Zakharov Date: Wed, 24 Apr 2019 18:23:31 +0800 Subject: [PATCH] block: avoid setting none scheduler if it's already none 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 Signed-off-by: Jens Axboe (backported from commit fbd72127c975dc8e532ecc73d52f3b1b00935bec) Signed-off-by: Kai-Heng Feng Acked-by: Kleber Souza Acked-by: AceLan Kao Signed-off-by: Khalid Elmously --- block/elevator.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/block/elevator.c b/block/elevator.c index 7bda083d5968..fbe221276112 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -1079,8 +1079,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.39.2