diff options
author | Jens Axboe <axboe@suse.de> | 2006-08-29 03:05:44 -0400 |
---|---|---|
committer | Jens Axboe <axboe@nelson.home.kernel.dk> | 2006-09-30 14:29:36 -0400 |
commit | fc46379daf90dce57bf765c81d3b39f55150aac2 (patch) | |
tree | 43aa28f0db6c73f137550b0b2e2ec29b9f9a1fc6 /include/linux/blkdev.h | |
parent | 89850f7ee905410c89f9295e89dc4c33502a34ac (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 'include/linux/blkdev.h')
-rw-r--r-- | include/linux/blkdev.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index a1e288069e2e..79cb9fa8034a 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -90,7 +90,7 @@ struct io_context { | |||
90 | atomic_t refcount; | 90 | atomic_t refcount; |
91 | struct task_struct *task; | 91 | struct task_struct *task; |
92 | 92 | ||
93 | int (*set_ioprio)(struct io_context *, unsigned int); | 93 | unsigned int ioprio_changed; |
94 | 94 | ||
95 | /* | 95 | /* |
96 | * For request batching | 96 | * For request batching |