diff options
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r-- | include/linux/blkdev.h | 25 |
1 files changed, 16 insertions, 9 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 56bb6a4e15f3..d0cac8b58de7 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -22,6 +22,7 @@ typedef struct request_queue request_queue_t; | |||
22 | struct elevator_queue; | 22 | struct elevator_queue; |
23 | typedef struct elevator_queue elevator_t; | 23 | typedef struct elevator_queue elevator_t; |
24 | struct request_pm_state; | 24 | struct request_pm_state; |
25 | struct blk_trace; | ||
25 | 26 | ||
26 | #define BLKDEV_MIN_RQ 4 | 27 | #define BLKDEV_MIN_RQ 4 |
27 | #define BLKDEV_MAX_RQ 128 /* Default maximum */ | 28 | #define BLKDEV_MAX_RQ 128 /* Default maximum */ |
@@ -54,25 +55,29 @@ struct as_io_context { | |||
54 | 55 | ||
55 | struct cfq_queue; | 56 | struct cfq_queue; |
56 | struct cfq_io_context { | 57 | struct cfq_io_context { |
57 | /* | 58 | struct rb_node rb_node; |
58 | * circular list of cfq_io_contexts belonging to a process io context | ||
59 | */ | ||
60 | struct list_head list; | ||
61 | struct cfq_queue *cfqq[2]; | ||
62 | void *key; | 59 | void *key; |
63 | 60 | ||
61 | struct cfq_queue *cfqq[2]; | ||
62 | |||
64 | struct io_context *ioc; | 63 | struct io_context *ioc; |
65 | 64 | ||
66 | unsigned long last_end_request; | 65 | unsigned long last_end_request; |
67 | unsigned long last_queue; | 66 | sector_t last_request_pos; |
67 | unsigned long last_queue; | ||
68 | |||
68 | unsigned long ttime_total; | 69 | unsigned long ttime_total; |
69 | unsigned long ttime_samples; | 70 | unsigned long ttime_samples; |
70 | unsigned long ttime_mean; | 71 | unsigned long ttime_mean; |
71 | 72 | ||
73 | unsigned int seek_samples; | ||
74 | u64 seek_total; | ||
75 | sector_t seek_mean; | ||
76 | |||
72 | struct list_head queue_list; | 77 | struct list_head queue_list; |
73 | 78 | ||
74 | void (*dtor)(struct cfq_io_context *); | 79 | void (*dtor)(struct io_context *); /* destructor */ |
75 | void (*exit)(struct cfq_io_context *); | 80 | void (*exit)(struct io_context *); /* called on task exit */ |
76 | }; | 81 | }; |
77 | 82 | ||
78 | /* | 83 | /* |
@@ -93,7 +98,7 @@ struct io_context { | |||
93 | int nr_batch_requests; /* Number of requests left in the batch */ | 98 | int nr_batch_requests; /* Number of requests left in the batch */ |
94 | 99 | ||
95 | struct as_io_context *aic; | 100 | struct as_io_context *aic; |
96 | struct cfq_io_context *cic; | 101 | struct rb_root cic_root; |
97 | }; | 102 | }; |
98 | 103 | ||
99 | void put_io_context(struct io_context *ioc); | 104 | void put_io_context(struct io_context *ioc); |
@@ -416,6 +421,8 @@ struct request_queue | |||
416 | unsigned int sg_reserved_size; | 421 | unsigned int sg_reserved_size; |
417 | int node; | 422 | int node; |
418 | 423 | ||
424 | struct blk_trace *blk_trace; | ||
425 | |||
419 | /* | 426 | /* |
420 | * reserved for flush operations | 427 | * reserved for flush operations |
421 | */ | 428 | */ |