diff options
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r-- | include/linux/blkdev.h | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index 1b135d49b279..4afa4f8f6090 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h | |||
@@ -95,13 +95,10 @@ enum rq_cmd_type_bits { | |||
95 | * as well! | 95 | * as well! |
96 | */ | 96 | */ |
97 | struct request { | 97 | struct request { |
98 | union { | 98 | struct list_head queuelist; |
99 | struct list_head queuelist; | ||
100 | struct llist_node ll_list; | ||
101 | }; | ||
102 | union { | 99 | union { |
103 | struct call_single_data csd; | 100 | struct call_single_data csd; |
104 | struct work_struct mq_flush_data; | 101 | struct work_struct mq_flush_work; |
105 | }; | 102 | }; |
106 | 103 | ||
107 | struct request_queue *q; | 104 | struct request_queue *q; |
@@ -291,6 +288,7 @@ struct queue_limits { | |||
291 | unsigned char discard_misaligned; | 288 | unsigned char discard_misaligned; |
292 | unsigned char cluster; | 289 | unsigned char cluster; |
293 | unsigned char discard_zeroes_data; | 290 | unsigned char discard_zeroes_data; |
291 | unsigned char raid_partial_stripes_expensive; | ||
294 | }; | 292 | }; |
295 | 293 | ||
296 | struct request_queue { | 294 | struct request_queue { |
@@ -450,13 +448,8 @@ struct request_queue { | |||
450 | unsigned long flush_pending_since; | 448 | unsigned long flush_pending_since; |
451 | struct list_head flush_queue[2]; | 449 | struct list_head flush_queue[2]; |
452 | struct list_head flush_data_in_flight; | 450 | struct list_head flush_data_in_flight; |
453 | union { | 451 | struct request *flush_rq; |
454 | struct request flush_rq; | 452 | spinlock_t mq_flush_lock; |
455 | struct { | ||
456 | spinlock_t mq_flush_lock; | ||
457 | struct work_struct mq_flush_work; | ||
458 | }; | ||
459 | }; | ||
460 | 453 | ||
461 | struct mutex sysfs_lock; | 454 | struct mutex sysfs_lock; |
462 | 455 | ||
@@ -735,7 +728,7 @@ struct rq_map_data { | |||
735 | }; | 728 | }; |
736 | 729 | ||
737 | struct req_iterator { | 730 | struct req_iterator { |
738 | int i; | 731 | struct bvec_iter iter; |
739 | struct bio *bio; | 732 | struct bio *bio; |
740 | }; | 733 | }; |
741 | 734 | ||
@@ -748,10 +741,11 @@ struct req_iterator { | |||
748 | 741 | ||
749 | #define rq_for_each_segment(bvl, _rq, _iter) \ | 742 | #define rq_for_each_segment(bvl, _rq, _iter) \ |
750 | __rq_for_each_bio(_iter.bio, _rq) \ | 743 | __rq_for_each_bio(_iter.bio, _rq) \ |
751 | bio_for_each_segment(bvl, _iter.bio, _iter.i) | 744 | bio_for_each_segment(bvl, _iter.bio, _iter.iter) |
752 | 745 | ||
753 | #define rq_iter_last(rq, _iter) \ | 746 | #define rq_iter_last(bvec, _iter) \ |
754 | (_iter.bio->bi_next == NULL && _iter.i == _iter.bio->bi_vcnt-1) | 747 | (_iter.bio->bi_next == NULL && \ |
748 | bio_iter_last(bvec, _iter.iter)) | ||
755 | 749 | ||
756 | #ifndef ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE | 750 | #ifndef ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE |
757 | # error "You should define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE for your platform" | 751 | # error "You should define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE for your platform" |