[PATCH] block layer: elv_iosched_show should get elv_list_lock
authorVasily Tarasov <vtaras@openvz.org>
Wed, 11 Oct 2006 11:26:30 +0000 (13:26 +0200)
committerJens Axboe <axboe@nelson.home.kernel.dk>
Thu, 12 Oct 2006 13:08:51 +0000 (15:08 +0200)
elv_iosched_show function iterates other elv_list, hence
elv_list_lock should be got.

Signed-off-by: Vasily Tarasov <vtaras@openvz.org>
Signed-off-by: Vasily Tarasov <jens.axboe@oracle.com>
block/elevator.c

index d8030a8..8ccd163 100644 (file)
@@ -1085,7 +1085,7 @@ ssize_t elv_iosched_show(request_queue_t *q, char *name)
        struct list_head *entry;
        int len = 0;
 
-       spin_lock_irq(q->queue_lock);
+       spin_lock_irq(&elv_list_lock);
        list_for_each(entry, &elv_list) {
                struct elevator_type *__e;
 
@@ -1095,7 +1095,7 @@ ssize_t elv_iosched_show(request_queue_t *q, char *name)
                else
                        len += sprintf(name+len, "%s ", __e->elevator_name);
        }
-       spin_unlock_irq(q->queue_lock);
+       spin_unlock_irq(&elv_list_lock);
 
        len += sprintf(len+name, "\n");
        return len;