diff options
author | Jens Axboe <jens.axboe@oracle.com> | 2007-04-26 14:41:53 +0200 |
---|---|---|
committer | Jens Axboe <axboe@nelson.home.kernel.dk> | 2007-04-30 09:08:17 +0200 |
commit | 2a12dcd71a5e0667b33f7b47bcac95c71d551840 (patch) | |
tree | 8e0a8cb3eeef023bade8217693b289e5db22a846 /block | |
parent | 5972511b77809cb7c9ccdb79b825c54921c5c546 (diff) | |
download | lwn-2a12dcd71a5e0667b33f7b47bcac95c71d551840.tar.gz lwn-2a12dcd71a5e0667b33f7b47bcac95c71d551840.zip |
[PATCH] elevator: elv_list_lock does not need irq disabling
It's never grabbed from irq context, so just make it plain spin_lock().
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/elevator.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/block/elevator.c b/block/elevator.c index 96a00c822748..ce866eb75f6a 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -134,13 +134,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; } @@ -965,10 +965,11 @@ void elv_unregister_queue(struct request_queue *q) int elv_register(struct elevator_type *e) { char *def = ""; - spin_lock_irq(&elv_list_lock); + + 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); if (!strcmp(e->elevator_name, chosen_elevator) || (!*chosen_elevator && @@ -998,9 +999,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); @@ -1118,7 +1119,7 @@ ssize_t elv_iosched_show(request_queue_t *q, char *name) struct list_head *entry; int len = 0; - spin_lock_irq(&elv_list_lock); + spin_lock(&elv_list_lock); list_for_each(entry, &elv_list) { struct elevator_type *__e; @@ -1128,7 +1129,7 @@ ssize_t elv_iosched_show(request_queue_t *q, char *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; |