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" |
