]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
block: avoid setting none scheduler if it's already none
authorAleksei Zakharov <zakharov.a.g@yandex.ru>
Wed, 24 Apr 2019 10:23:31 +0000 (18:23 +0800)
committerStefan Bader <stefan.bader@canonical.com>
Tue, 14 May 2019 12:57:44 +0000 (14:57 +0200)
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@yandex.ru>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
(backported from commit fbd72127c975dc8e532ecc73d52f3b1b00935bec)
Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
Acked-by: Kleber Souza <kleber.souza@canonical.com>
Acked-by: AceLan Kao <acelan.kao@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
block/elevator.c

index 7bda083d59684177bb66eec2e221177417c893ac..fbe2212761126abe85543f15b7f2286ed65b883c 100644 (file)
@@ -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);