diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/blkdev.h | 18 | ||||
-rw-r--r-- | include/linux/elevator.h | 1 |
2 files changed, 13 insertions, 6 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 36ab42c9bb9..6d7e9afd08c 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -99,13 +99,18 @@ struct request { | |||
99 | /* | 99 | /* |
100 | * The rb_node is only used inside the io scheduler, requests | 100 | * The rb_node is only used inside the io scheduler, requests |
101 | * are pruned when moved to the dispatch queue. So let the | 101 | * are pruned when moved to the dispatch queue. So let the |
102 | * completion_data share space with the rb_node. | 102 | * flush fields share space with the rb_node. |
103 | */ | 103 | */ |
104 | union { | 104 | union { |
105 | struct rb_node rb_node; /* sort/lookup */ | 105 | struct rb_node rb_node; /* sort/lookup */ |
106 | void *completion_data; | 106 | struct { |
107 | unsigned int seq; | ||
108 | struct list_head list; | ||
109 | } flush; | ||
107 | }; | 110 | }; |
108 | 111 | ||
112 | void *completion_data; | ||
113 | |||
109 | /* | 114 | /* |
110 | * Three pointers are available for the IO schedulers, if they need | 115 | * Three pointers are available for the IO schedulers, if they need |
111 | * more they have to dynamically allocate it. | 116 | * more they have to dynamically allocate it. |
@@ -362,11 +367,12 @@ struct request_queue | |||
362 | * for flush operations | 367 | * for flush operations |
363 | */ | 368 | */ |
364 | unsigned int flush_flags; | 369 | unsigned int flush_flags; |
365 | unsigned int flush_seq; | 370 | unsigned int flush_pending_idx:1; |
366 | int flush_err; | 371 | unsigned int flush_running_idx:1; |
372 | unsigned long flush_pending_since; | ||
373 | struct list_head flush_queue[2]; | ||
374 | struct list_head flush_data_in_flight; | ||
367 | struct request flush_rq; | 375 | struct request flush_rq; |
368 | struct request *orig_flush_rq; | ||
369 | struct list_head pending_flushes; | ||
370 | 376 | ||
371 | struct mutex sysfs_lock; | 377 | struct mutex sysfs_lock; |
372 | 378 | ||
diff --git a/include/linux/elevator.h b/include/linux/elevator.h index 4fd978e7eb8..86120c916fc 100644 --- a/include/linux/elevator.h +++ b/include/linux/elevator.h | |||
@@ -167,6 +167,7 @@ extern struct request *elv_rb_find(struct rb_root *, sector_t); | |||
167 | #define ELEVATOR_INSERT_BACK 2 | 167 | #define ELEVATOR_INSERT_BACK 2 |
168 | #define ELEVATOR_INSERT_SORT 3 | 168 | #define ELEVATOR_INSERT_SORT 3 |
169 | #define ELEVATOR_INSERT_REQUEUE 4 | 169 | #define ELEVATOR_INSERT_REQUEUE 4 |
170 | #define ELEVATOR_INSERT_FLUSH 5 | ||
170 | 171 | ||
171 | /* | 172 | /* |
172 | * return values from elevator_may_queue_fn | 173 | * return values from elevator_may_queue_fn |