diff options
author | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 08:12:39 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-04-30 08:12:39 -0700 |
commit | cd9bb7e7367c03400d6e918fd3502820fc3b9084 (patch) | |
tree | 66eda61f9b28eff39a91b7a819579616161266e3 /block/elevator.c | |
parent | 24a77daf3d80bddcece044e6dc3675e427eef3f3 (diff) | |
parent | 07e44708059010aa26c6a4c8ee6ff11743d04d4e (diff) |
Merge branch 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block
* 'for-linus' of git://git.kernel.dk/data/git/linux-2.6-block:
[PATCH] elevator: elv_list_lock does not need irq disabling
[BLOCK] Don't pin lots of memory in mempools
cfq-iosched: speedup cic rb lookup
ll_rw_blk: add io_context private pointer
cfq-iosched: get rid of cfqq hash
cfq-iosched: tighten queue request overlap condition
cfq-iosched: improve sync vs async workloads
cfq-iosched: never allow an async queue idling
cfq-iosched: get rid of ->dispatch_slice
cfq-iosched: don't pass unused preemption variable around
cfq-iosched: get rid of ->cur_rr and ->cfq_list
cfq-iosched: slice offset should take ioprio into account
[PATCH] cfq-iosched: style cleanups and comments
cfq-iosched: sort IDLE queues into the rbtree
cfq-iosched: sort RT queues into the rbtree
[PATCH] cfq-iosched: speed up rbtree handling
cfq-iosched: rework the whole round-robin list concept
cfq-iosched: minor updates
cfq-iosched: development update
cfq-iosched: improve preemption for cooperating tasks
Diffstat (limited to 'block/elevator.c')
-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 96a00c82274..ce866eb75f6 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; |