]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - block/elevator.c
[BLOCK] elevator: allow default scheduler to potentially be modular
[linux-2.6-omap-h63xx.git] / block / elevator.c
index dbbea73a8b10b513bd335f42129d38838d551794..96a61e029ce5e7858d2e024c08eff817b5a998d6 100644 (file)
@@ -168,10 +168,12 @@ int elevator_init(request_queue_t *q, char *name)
        if (name && !(e = elevator_get(name)))
                return -EINVAL;
 
-       if (!e && !(e = elevator_get(chosen_elevator))) {
-               e = elevator_get(CONFIG_DEFAULT_IOSCHED);
-               if (*chosen_elevator)
-                       printk("I/O scheduler %s not found\n", chosen_elevator);
+       if (!e && *chosen_elevator && !(e = elevator_get(chosen_elevator)))
+               printk("I/O scheduler %s not found\n", chosen_elevator);
+
+       if (!e && !(e = elevator_get(CONFIG_DEFAULT_IOSCHED))) {
+               printk("Default I/O scheduler not found, using no-op\n");
+               e = elevator_get("noop");
        }
 
        eq = kmalloc(sizeof(struct elevator_queue), GFP_KERNEL);