aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/blkdev.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/blkdev.h')
-rw-r--r--include/linux/blkdev.h26
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 */
97struct request { 97struct 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
296struct request_queue { 294struct 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
737struct req_iterator { 730struct 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"