There's no reason to freeze queue and remove scheduler
if there's no scheduler already.

Signed-off-by: Aleksei Zakharov <[email protected]>
---
 block/elevator.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/block/elevator.c b/block/elevator.c
index f05e90d..d6d835a 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);
-- 
2.7.4

Reply via email to