aboutsummaryrefslogtreecommitdiffstats
path: root/block/ll_rw_blk.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@suse.de>2006-08-29 03:05:44 -0400
committerJens Axboe <axboe@nelson.home.kernel.dk>2006-09-30 14:29:36 -0400
commitfc46379daf90dce57bf765c81d3b39f55150aac2 (patch)
tree43aa28f0db6c73f137550b0b2e2ec29b9f9a1fc6 /block/ll_rw_blk.c
parent89850f7ee905410c89f9295e89dc4c33502a34ac (diff)
[PATCH] cfq-iosched: kill cfq_exit_lock
cfq_exit_lock is protecting two things now: - The per-ioc rbtree of cfq_io_contexts - The per-cfqd linked list of cfq_io_contexts The per-cfqd linked list can be protected by the queue lock, as it is (by definition) per cfqd as the queue lock is. The per-ioc rbtree is mainly used and updated by the process itself only. The only outside use is the io priority changing. If we move the priority changing to not browsing the rbtree, we can remove any locking from the rbtree updates and lookup completely. Let the sys_ioprio syscall just mark processes as having the iopriority changed and lazily update the private cfq io contexts the next time io is queued, and we can remove this locking as well. Signed-off-by: Jens Axboe <axboe@suse.de>
Diffstat (limited to 'block/ll_rw_blk.c')
-rw-r--r--block/ll_rw_blk.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index e25b4cd2dcd1..508548b834f1 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -3654,7 +3654,7 @@ struct io_context *current_io_context(gfp_t gfp_flags)
3654 if (ret) { 3654 if (ret) {
3655 atomic_set(&ret->refcount, 1); 3655 atomic_set(&ret->refcount, 1);
3656 ret->task = current; 3656 ret->task = current;
3657 ret->set_ioprio = NULL; 3657 ret->ioprio_changed = 0;
3658 ret->last_waited = jiffies; /* doesn't matter... */ 3658 ret->last_waited = jiffies; /* doesn't matter... */
3659 ret->nr_batch_requests = 0; /* because this is 0 */ 3659 ret->nr_batch_requests = 0; /* because this is 0 */
3660 ret->aic = NULL; 3660 ret->aic = NULL;