]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - block/elevator.c
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik...
[karo-tx-linux.git] / block / elevator.c
index 25f6ef28e3bb34567db40fb0d8472f39038d0ae5..4769a25d7037a555c4f700d34a9b6d5411391959 100644 (file)
@@ -112,12 +112,8 @@ static inline int elv_try_merge(struct request *__rq, struct bio *bio)
 static struct elevator_type *elevator_find(const char *name)
 {
        struct elevator_type *e;
-       struct list_head *entry;
-
-       list_for_each(entry, &elv_list) {
-
-               e = list_entry(entry, struct elevator_type, list);
 
+       list_for_each_entry(e, &elv_list, list) {
                if (!strcmp(e->elevator_name, name))
                        return e;
        }
@@ -134,13 +130,13 @@ static struct elevator_type *elevator_get(const char *name)
 {
        struct elevator_type *e;
 
-       spin_lock_irq(&elv_list_lock);
+       spin_lock(&elv_list_lock);
 
        e = elevator_find(name);
        if (e && !try_module_get(e->elevator_owner))
                e = NULL;
 
-       spin_unlock_irq(&elv_list_lock);
+       spin_unlock(&elv_list_lock);
 
        return e;
 }
@@ -964,17 +960,19 @@ void elv_unregister_queue(struct request_queue *q)
 
 int elv_register(struct elevator_type *e)
 {
-       spin_lock_irq(&elv_list_lock);
+       char *def = "";
+
+       spin_lock(&elv_list_lock);
        BUG_ON(elevator_find(e->elevator_name));
        list_add_tail(&e->list, &elv_list);
-       spin_unlock_irq(&elv_list_lock);
+       spin_unlock(&elv_list_lock);
 
-       printk(KERN_INFO "io scheduler %s registered", e->elevator_name);
        if (!strcmp(e->elevator_name, chosen_elevator) ||
                        (!*chosen_elevator &&
                         !strcmp(e->elevator_name, CONFIG_DEFAULT_IOSCHED)))
-                               printk(" (default)");
-       printk("\n");
+                               def = " (default)";
+
+       printk(KERN_INFO "io scheduler %s registered%s\n", e->elevator_name, def);
        return 0;
 }
 EXPORT_SYMBOL_GPL(elv_register);
@@ -997,9 +995,9 @@ void elv_unregister(struct elevator_type *e)
                read_unlock(&tasklist_lock);
        }
 
-       spin_lock_irq(&elv_list_lock);
+       spin_lock(&elv_list_lock);
        list_del_init(&e->list);
-       spin_unlock_irq(&elv_list_lock);
+       spin_unlock(&elv_list_lock);
 }
 EXPORT_SYMBOL_GPL(elv_unregister);
 
@@ -1114,20 +1112,17 @@ ssize_t elv_iosched_show(request_queue_t *q, char *name)
 {
        elevator_t *e = q->elevator;
        struct elevator_type *elv = e->elevator_type;
-       struct list_head *entry;
+       struct elevator_type *__e;
        int len = 0;
 
-       spin_lock_irq(&elv_list_lock);
-       list_for_each(entry, &elv_list) {
-               struct elevator_type *__e;
-
-               __e = list_entry(entry, struct elevator_type, list);
+       spin_lock(&elv_list_lock);
+       list_for_each_entry(__e, &elv_list, list) {
                if (!strcmp(elv->elevator_name, __e->elevator_name))
                        len += sprintf(name+len, "[%s] ", elv->elevator_name);
                else
                        len += sprintf(name+len, "%s ", __e->elevator_name);
        }
-       spin_unlock_irq(&elv_list_lock);
+       spin_unlock(&elv_list_lock);
 
        len += sprintf(len+name, "\n");
        return len;