diff options
| author | Jens Axboe <jens.axboe@oracle.com> | 2008-02-19 04:02:29 -0500 |
|---|---|---|
| committer | Jens Axboe <jens.axboe@oracle.com> | 2008-02-19 04:04:00 -0500 |
| commit | ffc4e7595734cf768fa60cea8a4d545dfef8231a (patch) | |
| tree | 9b95aca67ea7c9e87254da501f73cca64504051d /include | |
| parent | 84e9e03c55c2456799ab19f1d577e72f721fdd39 (diff) | |
cfq-iosched: add hlist for browsing parallel to the radix tree
It's cumbersome to browse a radix tree from start to finish, especially
since we modify keys when a process exits. So add a hlist for the single
purpose of browsing over all known cfq_io_contexts, used for exit,
io prio change, etc.
This fixes http://bugzilla.kernel.org/show_bug.cgi?id=9948
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/iocontext.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/iocontext.h b/include/linux/iocontext.h index 593b222d9d..1b4ccf25b4 100644 --- a/include/linux/iocontext.h +++ b/include/linux/iocontext.h | |||
| @@ -50,6 +50,7 @@ struct cfq_io_context { | |||
| 50 | sector_t seek_mean; | 50 | sector_t seek_mean; |
| 51 | 51 | ||
| 52 | struct list_head queue_list; | 52 | struct list_head queue_list; |
| 53 | struct hlist_node cic_list; | ||
| 53 | 54 | ||
| 54 | void (*dtor)(struct io_context *); /* destructor */ | 55 | void (*dtor)(struct io_context *); /* destructor */ |
| 55 | void (*exit)(struct io_context *); /* called on task exit */ | 56 | void (*exit)(struct io_context *); /* called on task exit */ |
| @@ -77,6 +78,7 @@ struct io_context { | |||
| 77 | 78 | ||
| 78 | struct as_io_context *aic; | 79 | struct as_io_context *aic; |
| 79 | struct radix_tree_root radix_root; | 80 | struct radix_tree_root radix_root; |
| 81 | struct hlist_head cic_list; | ||
| 80 | void *ioc_data; | 82 | void *ioc_data; |
| 81 | }; | 83 | }; |
| 82 | 84 | ||
