diff options
Diffstat (limited to 'block/ll_rw_blk.c')
-rw-r--r-- | block/ll_rw_blk.c | 215 |
1 files changed, 112 insertions, 103 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c index 66056ca5e631..8c2caff87cc3 100644 --- a/block/ll_rw_blk.c +++ b/block/ll_rw_blk.c | |||
@@ -40,7 +40,7 @@ static void blk_unplug_work(struct work_struct *work); | |||
40 | static void blk_unplug_timeout(unsigned long data); | 40 | static void blk_unplug_timeout(unsigned long data); |
41 | static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io); | 41 | static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io); |
42 | static void init_request_from_bio(struct request *req, struct bio *bio); | 42 | static void init_request_from_bio(struct request *req, struct bio *bio); |
43 | static int __make_request(request_queue_t *q, struct bio *bio); | 43 | static int __make_request(struct request_queue *q, struct bio *bio); |
44 | static struct io_context *current_io_context(gfp_t gfp_flags, int node); | 44 | static struct io_context *current_io_context(gfp_t gfp_flags, int node); |
45 | 45 | ||
46 | /* | 46 | /* |
@@ -121,7 +121,7 @@ static void blk_queue_congestion_threshold(struct request_queue *q) | |||
121 | struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev) | 121 | struct backing_dev_info *blk_get_backing_dev_info(struct block_device *bdev) |
122 | { | 122 | { |
123 | struct backing_dev_info *ret = NULL; | 123 | struct backing_dev_info *ret = NULL; |
124 | request_queue_t *q = bdev_get_queue(bdev); | 124 | struct request_queue *q = bdev_get_queue(bdev); |
125 | 125 | ||
126 | if (q) | 126 | if (q) |
127 | ret = &q->backing_dev_info; | 127 | ret = &q->backing_dev_info; |
@@ -140,7 +140,7 @@ EXPORT_SYMBOL(blk_get_backing_dev_info); | |||
140 | * cdb from the request data for instance. | 140 | * cdb from the request data for instance. |
141 | * | 141 | * |
142 | */ | 142 | */ |
143 | void blk_queue_prep_rq(request_queue_t *q, prep_rq_fn *pfn) | 143 | void blk_queue_prep_rq(struct request_queue *q, prep_rq_fn *pfn) |
144 | { | 144 | { |
145 | q->prep_rq_fn = pfn; | 145 | q->prep_rq_fn = pfn; |
146 | } | 146 | } |
@@ -163,14 +163,14 @@ EXPORT_SYMBOL(blk_queue_prep_rq); | |||
163 | * no merge_bvec_fn is defined for a queue, and only the fixed limits are | 163 | * no merge_bvec_fn is defined for a queue, and only the fixed limits are |
164 | * honored. | 164 | * honored. |
165 | */ | 165 | */ |
166 | void blk_queue_merge_bvec(request_queue_t *q, merge_bvec_fn *mbfn) | 166 | void blk_queue_merge_bvec(struct request_queue *q, merge_bvec_fn *mbfn) |
167 | { | 167 | { |
168 | q->merge_bvec_fn = mbfn; | 168 | q->merge_bvec_fn = mbfn; |
169 | } | 169 | } |
170 | 170 | ||
171 | EXPORT_SYMBOL(blk_queue_merge_bvec); | 171 | EXPORT_SYMBOL(blk_queue_merge_bvec); |
172 | 172 | ||
173 | void blk_queue_softirq_done(request_queue_t *q, softirq_done_fn *fn) | 173 | void blk_queue_softirq_done(struct request_queue *q, softirq_done_fn *fn) |
174 | { | 174 | { |
175 | q->softirq_done_fn = fn; | 175 | q->softirq_done_fn = fn; |
176 | } | 176 | } |
@@ -199,7 +199,7 @@ EXPORT_SYMBOL(blk_queue_softirq_done); | |||
199 | * __bio_kmap_atomic() to get a temporary kernel mapping, or by calling | 199 | * __bio_kmap_atomic() to get a temporary kernel mapping, or by calling |
200 | * blk_queue_bounce() to create a buffer in normal memory. | 200 | * blk_queue_bounce() to create a buffer in normal memory. |
201 | **/ | 201 | **/ |
202 | void blk_queue_make_request(request_queue_t * q, make_request_fn * mfn) | 202 | void blk_queue_make_request(struct request_queue * q, make_request_fn * mfn) |
203 | { | 203 | { |
204 | /* | 204 | /* |
205 | * set defaults | 205 | * set defaults |
@@ -235,7 +235,7 @@ void blk_queue_make_request(request_queue_t * q, make_request_fn * mfn) | |||
235 | 235 | ||
236 | EXPORT_SYMBOL(blk_queue_make_request); | 236 | EXPORT_SYMBOL(blk_queue_make_request); |
237 | 237 | ||
238 | static void rq_init(request_queue_t *q, struct request *rq) | 238 | static void rq_init(struct request_queue *q, struct request *rq) |
239 | { | 239 | { |
240 | INIT_LIST_HEAD(&rq->queuelist); | 240 | INIT_LIST_HEAD(&rq->queuelist); |
241 | INIT_LIST_HEAD(&rq->donelist); | 241 | INIT_LIST_HEAD(&rq->donelist); |
@@ -272,7 +272,7 @@ static void rq_init(request_queue_t *q, struct request *rq) | |||
272 | * feature should call this function and indicate so. | 272 | * feature should call this function and indicate so. |
273 | * | 273 | * |
274 | **/ | 274 | **/ |
275 | int blk_queue_ordered(request_queue_t *q, unsigned ordered, | 275 | int blk_queue_ordered(struct request_queue *q, unsigned ordered, |
276 | prepare_flush_fn *prepare_flush_fn) | 276 | prepare_flush_fn *prepare_flush_fn) |
277 | { | 277 | { |
278 | if (ordered & (QUEUE_ORDERED_PREFLUSH | QUEUE_ORDERED_POSTFLUSH) && | 278 | if (ordered & (QUEUE_ORDERED_PREFLUSH | QUEUE_ORDERED_POSTFLUSH) && |
@@ -311,7 +311,7 @@ EXPORT_SYMBOL(blk_queue_ordered); | |||
311 | * to the block layer by defining it through this call. | 311 | * to the block layer by defining it through this call. |
312 | * | 312 | * |
313 | **/ | 313 | **/ |
314 | void blk_queue_issue_flush_fn(request_queue_t *q, issue_flush_fn *iff) | 314 | void blk_queue_issue_flush_fn(struct request_queue *q, issue_flush_fn *iff) |
315 | { | 315 | { |
316 | q->issue_flush_fn = iff; | 316 | q->issue_flush_fn = iff; |
317 | } | 317 | } |
@@ -321,7 +321,7 @@ EXPORT_SYMBOL(blk_queue_issue_flush_fn); | |||
321 | /* | 321 | /* |
322 | * Cache flushing for ordered writes handling | 322 | * Cache flushing for ordered writes handling |
323 | */ | 323 | */ |
324 | inline unsigned blk_ordered_cur_seq(request_queue_t *q) | 324 | inline unsigned blk_ordered_cur_seq(struct request_queue *q) |
325 | { | 325 | { |
326 | if (!q->ordseq) | 326 | if (!q->ordseq) |
327 | return 0; | 327 | return 0; |
@@ -330,7 +330,7 @@ inline unsigned blk_ordered_cur_seq(request_queue_t *q) | |||
330 | 330 | ||
331 | unsigned blk_ordered_req_seq(struct request *rq) | 331 | unsigned blk_ordered_req_seq(struct request *rq) |
332 | { | 332 | { |
333 | request_queue_t *q = rq->q; | 333 | struct request_queue *q = rq->q; |
334 | 334 | ||
335 | BUG_ON(q->ordseq == 0); | 335 | BUG_ON(q->ordseq == 0); |
336 | 336 | ||
@@ -357,7 +357,7 @@ unsigned blk_ordered_req_seq(struct request *rq) | |||
357 | return QUEUE_ORDSEQ_DONE; | 357 | return QUEUE_ORDSEQ_DONE; |
358 | } | 358 | } |
359 | 359 | ||
360 | void blk_ordered_complete_seq(request_queue_t *q, unsigned seq, int error) | 360 | void blk_ordered_complete_seq(struct request_queue *q, unsigned seq, int error) |
361 | { | 361 | { |
362 | struct request *rq; | 362 | struct request *rq; |
363 | int uptodate; | 363 | int uptodate; |
@@ -401,7 +401,7 @@ static void post_flush_end_io(struct request *rq, int error) | |||
401 | blk_ordered_complete_seq(rq->q, QUEUE_ORDSEQ_POSTFLUSH, error); | 401 | blk_ordered_complete_seq(rq->q, QUEUE_ORDSEQ_POSTFLUSH, error); |
402 | } | 402 | } |
403 | 403 | ||
404 | static void queue_flush(request_queue_t *q, unsigned which) | 404 | static void queue_flush(struct request_queue *q, unsigned which) |
405 | { | 405 | { |
406 | struct request *rq; | 406 | struct request *rq; |
407 | rq_end_io_fn *end_io; | 407 | rq_end_io_fn *end_io; |
@@ -425,7 +425,7 @@ static void queue_flush(request_queue_t *q, unsigned which) | |||
425 | elv_insert(q, rq, ELEVATOR_INSERT_FRONT); | 425 | elv_insert(q, rq, ELEVATOR_INSERT_FRONT); |
426 | } | 426 | } |
427 | 427 | ||
428 | static inline struct request *start_ordered(request_queue_t *q, | 428 | static inline struct request *start_ordered(struct request_queue *q, |
429 | struct request *rq) | 429 | struct request *rq) |
430 | { | 430 | { |
431 | q->bi_size = 0; | 431 | q->bi_size = 0; |
@@ -476,7 +476,7 @@ static inline struct request *start_ordered(request_queue_t *q, | |||
476 | return rq; | 476 | return rq; |
477 | } | 477 | } |
478 | 478 | ||
479 | int blk_do_ordered(request_queue_t *q, struct request **rqp) | 479 | int blk_do_ordered(struct request_queue *q, struct request **rqp) |
480 | { | 480 | { |
481 | struct request *rq = *rqp; | 481 | struct request *rq = *rqp; |
482 | int is_barrier = blk_fs_request(rq) && blk_barrier_rq(rq); | 482 | int is_barrier = blk_fs_request(rq) && blk_barrier_rq(rq); |
@@ -527,7 +527,7 @@ int blk_do_ordered(request_queue_t *q, struct request **rqp) | |||
527 | 527 | ||
528 | static int flush_dry_bio_endio(struct bio *bio, unsigned int bytes, int error) | 528 | static int flush_dry_bio_endio(struct bio *bio, unsigned int bytes, int error) |
529 | { | 529 | { |
530 | request_queue_t *q = bio->bi_private; | 530 | struct request_queue *q = bio->bi_private; |
531 | 531 | ||
532 | /* | 532 | /* |
533 | * This is dry run, restore bio_sector and size. We'll finish | 533 | * This is dry run, restore bio_sector and size. We'll finish |
@@ -551,7 +551,7 @@ static int flush_dry_bio_endio(struct bio *bio, unsigned int bytes, int error) | |||
551 | static int ordered_bio_endio(struct request *rq, struct bio *bio, | 551 | static int ordered_bio_endio(struct request *rq, struct bio *bio, |
552 | unsigned int nbytes, int error) | 552 | unsigned int nbytes, int error) |
553 | { | 553 | { |
554 | request_queue_t *q = rq->q; | 554 | struct request_queue *q = rq->q; |
555 | bio_end_io_t *endio; | 555 | bio_end_io_t *endio; |
556 | void *private; | 556 | void *private; |
557 | 557 | ||
@@ -588,7 +588,7 @@ static int ordered_bio_endio(struct request *rq, struct bio *bio, | |||
588 | * blk_queue_bounce_limit to have lower memory pages allocated as bounce | 588 | * blk_queue_bounce_limit to have lower memory pages allocated as bounce |
589 | * buffers for doing I/O to pages residing above @page. | 589 | * buffers for doing I/O to pages residing above @page. |
590 | **/ | 590 | **/ |
591 | void blk_queue_bounce_limit(request_queue_t *q, u64 dma_addr) | 591 | void blk_queue_bounce_limit(struct request_queue *q, u64 dma_addr) |
592 | { | 592 | { |
593 | unsigned long bounce_pfn = dma_addr >> PAGE_SHIFT; | 593 | unsigned long bounce_pfn = dma_addr >> PAGE_SHIFT; |
594 | int dma = 0; | 594 | int dma = 0; |
@@ -624,7 +624,7 @@ EXPORT_SYMBOL(blk_queue_bounce_limit); | |||
624 | * Enables a low level driver to set an upper limit on the size of | 624 | * Enables a low level driver to set an upper limit on the size of |
625 | * received requests. | 625 | * received requests. |
626 | **/ | 626 | **/ |
627 | void blk_queue_max_sectors(request_queue_t *q, unsigned int max_sectors) | 627 | void blk_queue_max_sectors(struct request_queue *q, unsigned int max_sectors) |
628 | { | 628 | { |
629 | if ((max_sectors << 9) < PAGE_CACHE_SIZE) { | 629 | if ((max_sectors << 9) < PAGE_CACHE_SIZE) { |
630 | max_sectors = 1 << (PAGE_CACHE_SHIFT - 9); | 630 | max_sectors = 1 << (PAGE_CACHE_SHIFT - 9); |
@@ -651,7 +651,8 @@ EXPORT_SYMBOL(blk_queue_max_sectors); | |||
651 | * physical data segments in a request. This would be the largest sized | 651 | * physical data segments in a request. This would be the largest sized |
652 | * scatter list the driver could handle. | 652 | * scatter list the driver could handle. |
653 | **/ | 653 | **/ |
654 | void blk_queue_max_phys_segments(request_queue_t *q, unsigned short max_segments) | 654 | void blk_queue_max_phys_segments(struct request_queue *q, |
655 | unsigned short max_segments) | ||
655 | { | 656 | { |
656 | if (!max_segments) { | 657 | if (!max_segments) { |
657 | max_segments = 1; | 658 | max_segments = 1; |
@@ -674,7 +675,8 @@ EXPORT_SYMBOL(blk_queue_max_phys_segments); | |||
674 | * address/length pairs the host adapter can actually give as once | 675 | * address/length pairs the host adapter can actually give as once |
675 | * to the device. | 676 | * to the device. |
676 | **/ | 677 | **/ |
677 | void blk_queue_max_hw_segments(request_queue_t *q, unsigned short max_segments) | 678 | void blk_queue_max_hw_segments(struct request_queue *q, |
679 | unsigned short max_segments) | ||
678 | { | 680 | { |
679 | if (!max_segments) { | 681 | if (!max_segments) { |
680 | max_segments = 1; | 682 | max_segments = 1; |
@@ -695,7 +697,7 @@ EXPORT_SYMBOL(blk_queue_max_hw_segments); | |||
695 | * Enables a low level driver to set an upper limit on the size of a | 697 | * Enables a low level driver to set an upper limit on the size of a |
696 | * coalesced segment | 698 | * coalesced segment |
697 | **/ | 699 | **/ |
698 | void blk_queue_max_segment_size(request_queue_t *q, unsigned int max_size) | 700 | void blk_queue_max_segment_size(struct request_queue *q, unsigned int max_size) |
699 | { | 701 | { |
700 | if (max_size < PAGE_CACHE_SIZE) { | 702 | if (max_size < PAGE_CACHE_SIZE) { |
701 | max_size = PAGE_CACHE_SIZE; | 703 | max_size = PAGE_CACHE_SIZE; |
@@ -718,7 +720,7 @@ EXPORT_SYMBOL(blk_queue_max_segment_size); | |||
718 | * even internal read-modify-write operations). Usually the default | 720 | * even internal read-modify-write operations). Usually the default |
719 | * of 512 covers most hardware. | 721 | * of 512 covers most hardware. |
720 | **/ | 722 | **/ |
721 | void blk_queue_hardsect_size(request_queue_t *q, unsigned short size) | 723 | void blk_queue_hardsect_size(struct request_queue *q, unsigned short size) |
722 | { | 724 | { |
723 | q->hardsect_size = size; | 725 | q->hardsect_size = size; |
724 | } | 726 | } |
@@ -735,7 +737,7 @@ EXPORT_SYMBOL(blk_queue_hardsect_size); | |||
735 | * @t: the stacking driver (top) | 737 | * @t: the stacking driver (top) |
736 | * @b: the underlying device (bottom) | 738 | * @b: the underlying device (bottom) |
737 | **/ | 739 | **/ |
738 | void blk_queue_stack_limits(request_queue_t *t, request_queue_t *b) | 740 | void blk_queue_stack_limits(struct request_queue *t, struct request_queue *b) |
739 | { | 741 | { |
740 | /* zero is "infinity" */ | 742 | /* zero is "infinity" */ |
741 | t->max_sectors = min_not_zero(t->max_sectors,b->max_sectors); | 743 | t->max_sectors = min_not_zero(t->max_sectors,b->max_sectors); |
@@ -756,7 +758,7 @@ EXPORT_SYMBOL(blk_queue_stack_limits); | |||
756 | * @q: the request queue for the device | 758 | * @q: the request queue for the device |
757 | * @mask: the memory boundary mask | 759 | * @mask: the memory boundary mask |
758 | **/ | 760 | **/ |
759 | void blk_queue_segment_boundary(request_queue_t *q, unsigned long mask) | 761 | void blk_queue_segment_boundary(struct request_queue *q, unsigned long mask) |
760 | { | 762 | { |
761 | if (mask < PAGE_CACHE_SIZE - 1) { | 763 | if (mask < PAGE_CACHE_SIZE - 1) { |
762 | mask = PAGE_CACHE_SIZE - 1; | 764 | mask = PAGE_CACHE_SIZE - 1; |
@@ -778,7 +780,7 @@ EXPORT_SYMBOL(blk_queue_segment_boundary); | |||
778 | * this is used when buiding direct io requests for the queue. | 780 | * this is used when buiding direct io requests for the queue. |
779 | * | 781 | * |
780 | **/ | 782 | **/ |
781 | void blk_queue_dma_alignment(request_queue_t *q, int mask) | 783 | void blk_queue_dma_alignment(struct request_queue *q, int mask) |
782 | { | 784 | { |
783 | q->dma_alignment = mask; | 785 | q->dma_alignment = mask; |
784 | } | 786 | } |
@@ -796,7 +798,7 @@ EXPORT_SYMBOL(blk_queue_dma_alignment); | |||
796 | * | 798 | * |
797 | * no locks need be held. | 799 | * no locks need be held. |
798 | **/ | 800 | **/ |
799 | struct request *blk_queue_find_tag(request_queue_t *q, int tag) | 801 | struct request *blk_queue_find_tag(struct request_queue *q, int tag) |
800 | { | 802 | { |
801 | return blk_map_queue_find_tag(q->queue_tags, tag); | 803 | return blk_map_queue_find_tag(q->queue_tags, tag); |
802 | } | 804 | } |
@@ -840,7 +842,7 @@ static int __blk_free_tags(struct blk_queue_tag *bqt) | |||
840 | * blk_cleanup_queue() will take care of calling this function, if tagging | 842 | * blk_cleanup_queue() will take care of calling this function, if tagging |
841 | * has been used. So there's no need to call this directly. | 843 | * has been used. So there's no need to call this directly. |
842 | **/ | 844 | **/ |
843 | static void __blk_queue_free_tags(request_queue_t *q) | 845 | static void __blk_queue_free_tags(struct request_queue *q) |
844 | { | 846 | { |
845 | struct blk_queue_tag *bqt = q->queue_tags; | 847 | struct blk_queue_tag *bqt = q->queue_tags; |
846 | 848 | ||
@@ -877,7 +879,7 @@ EXPORT_SYMBOL(blk_free_tags); | |||
877 | * This is used to disabled tagged queuing to a device, yet leave | 879 | * This is used to disabled tagged queuing to a device, yet leave |
878 | * queue in function. | 880 | * queue in function. |
879 | **/ | 881 | **/ |
880 | void blk_queue_free_tags(request_queue_t *q) | 882 | void blk_queue_free_tags(struct request_queue *q) |
881 | { | 883 | { |
882 | clear_bit(QUEUE_FLAG_QUEUED, &q->queue_flags); | 884 | clear_bit(QUEUE_FLAG_QUEUED, &q->queue_flags); |
883 | } | 885 | } |
@@ -885,7 +887,7 @@ void blk_queue_free_tags(request_queue_t *q) | |||
885 | EXPORT_SYMBOL(blk_queue_free_tags); | 887 | EXPORT_SYMBOL(blk_queue_free_tags); |
886 | 888 | ||
887 | static int | 889 | static int |
888 | init_tag_map(request_queue_t *q, struct blk_queue_tag *tags, int depth) | 890 | init_tag_map(struct request_queue *q, struct blk_queue_tag *tags, int depth) |
889 | { | 891 | { |
890 | struct request **tag_index; | 892 | struct request **tag_index; |
891 | unsigned long *tag_map; | 893 | unsigned long *tag_map; |
@@ -955,7 +957,7 @@ EXPORT_SYMBOL(blk_init_tags); | |||
955 | * @depth: the maximum queue depth supported | 957 | * @depth: the maximum queue depth supported |
956 | * @tags: the tag to use | 958 | * @tags: the tag to use |
957 | **/ | 959 | **/ |
958 | int blk_queue_init_tags(request_queue_t *q, int depth, | 960 | int blk_queue_init_tags(struct request_queue *q, int depth, |
959 | struct blk_queue_tag *tags) | 961 | struct blk_queue_tag *tags) |
960 | { | 962 | { |
961 | int rc; | 963 | int rc; |
@@ -996,7 +998,7 @@ EXPORT_SYMBOL(blk_queue_init_tags); | |||
996 | * Notes: | 998 | * Notes: |
997 | * Must be called with the queue lock held. | 999 | * Must be called with the queue lock held. |
998 | **/ | 1000 | **/ |
999 | int blk_queue_resize_tags(request_queue_t *q, int new_depth) | 1001 | int blk_queue_resize_tags(struct request_queue *q, int new_depth) |
1000 | { | 1002 | { |
1001 | struct blk_queue_tag *bqt = q->queue_tags; | 1003 | struct blk_queue_tag *bqt = q->queue_tags; |
1002 | struct request **tag_index; | 1004 | struct request **tag_index; |
@@ -1059,7 +1061,7 @@ EXPORT_SYMBOL(blk_queue_resize_tags); | |||
1059 | * Notes: | 1061 | * Notes: |
1060 | * queue lock must be held. | 1062 | * queue lock must be held. |
1061 | **/ | 1063 | **/ |
1062 | void blk_queue_end_tag(request_queue_t *q, struct request *rq) | 1064 | void blk_queue_end_tag(struct request_queue *q, struct request *rq) |
1063 | { | 1065 | { |
1064 | struct blk_queue_tag *bqt = q->queue_tags; | 1066 | struct blk_queue_tag *bqt = q->queue_tags; |
1065 | int tag = rq->tag; | 1067 | int tag = rq->tag; |
@@ -1111,7 +1113,7 @@ EXPORT_SYMBOL(blk_queue_end_tag); | |||
1111 | * Notes: | 1113 | * Notes: |
1112 | * queue lock must be held. | 1114 | * queue lock must be held. |
1113 | **/ | 1115 | **/ |
1114 | int blk_queue_start_tag(request_queue_t *q, struct request *rq) | 1116 | int blk_queue_start_tag(struct request_queue *q, struct request *rq) |
1115 | { | 1117 | { |
1116 | struct blk_queue_tag *bqt = q->queue_tags; | 1118 | struct blk_queue_tag *bqt = q->queue_tags; |
1117 | int tag; | 1119 | int tag; |
@@ -1158,7 +1160,7 @@ EXPORT_SYMBOL(blk_queue_start_tag); | |||
1158 | * Notes: | 1160 | * Notes: |
1159 | * queue lock must be held. | 1161 | * queue lock must be held. |
1160 | **/ | 1162 | **/ |
1161 | void blk_queue_invalidate_tags(request_queue_t *q) | 1163 | void blk_queue_invalidate_tags(struct request_queue *q) |
1162 | { | 1164 | { |
1163 | struct blk_queue_tag *bqt = q->queue_tags; | 1165 | struct blk_queue_tag *bqt = q->queue_tags; |
1164 | struct list_head *tmp, *n; | 1166 | struct list_head *tmp, *n; |
@@ -1205,7 +1207,7 @@ void blk_dump_rq_flags(struct request *rq, char *msg) | |||
1205 | 1207 | ||
1206 | EXPORT_SYMBOL(blk_dump_rq_flags); | 1208 | EXPORT_SYMBOL(blk_dump_rq_flags); |
1207 | 1209 | ||
1208 | void blk_recount_segments(request_queue_t *q, struct bio *bio) | 1210 | void blk_recount_segments(struct request_queue *q, struct bio *bio) |
1209 | { | 1211 | { |
1210 | struct bio_vec *bv, *bvprv = NULL; | 1212 | struct bio_vec *bv, *bvprv = NULL; |
1211 | int i, nr_phys_segs, nr_hw_segs, seg_size, hw_seg_size, cluster; | 1213 | int i, nr_phys_segs, nr_hw_segs, seg_size, hw_seg_size, cluster; |
@@ -1267,7 +1269,7 @@ new_hw_segment: | |||
1267 | } | 1269 | } |
1268 | EXPORT_SYMBOL(blk_recount_segments); | 1270 | EXPORT_SYMBOL(blk_recount_segments); |
1269 | 1271 | ||
1270 | static int blk_phys_contig_segment(request_queue_t *q, struct bio *bio, | 1272 | static int blk_phys_contig_segment(struct request_queue *q, struct bio *bio, |
1271 | struct bio *nxt) | 1273 | struct bio *nxt) |
1272 | { | 1274 | { |
1273 | if (!(q->queue_flags & (1 << QUEUE_FLAG_CLUSTER))) | 1275 | if (!(q->queue_flags & (1 << QUEUE_FLAG_CLUSTER))) |
@@ -1288,7 +1290,7 @@ static int blk_phys_contig_segment(request_queue_t *q, struct bio *bio, | |||
1288 | return 0; | 1290 | return 0; |
1289 | } | 1291 | } |
1290 | 1292 | ||
1291 | static int blk_hw_contig_segment(request_queue_t *q, struct bio *bio, | 1293 | static int blk_hw_contig_segment(struct request_queue *q, struct bio *bio, |
1292 | struct bio *nxt) | 1294 | struct bio *nxt) |
1293 | { | 1295 | { |
1294 | if (unlikely(!bio_flagged(bio, BIO_SEG_VALID))) | 1296 | if (unlikely(!bio_flagged(bio, BIO_SEG_VALID))) |
@@ -1308,7 +1310,8 @@ static int blk_hw_contig_segment(request_queue_t *q, struct bio *bio, | |||
1308 | * map a request to scatterlist, return number of sg entries setup. Caller | 1310 | * map a request to scatterlist, return number of sg entries setup. Caller |
1309 | * must make sure sg can hold rq->nr_phys_segments entries | 1311 | * must make sure sg can hold rq->nr_phys_segments entries |
1310 | */ | 1312 | */ |
1311 | int blk_rq_map_sg(request_queue_t *q, struct request *rq, struct scatterlist *sg) | 1313 | int blk_rq_map_sg(struct request_queue *q, struct request *rq, |
1314 | struct scatterlist *sg) | ||
1312 | { | 1315 | { |
1313 | struct bio_vec *bvec, *bvprv; | 1316 | struct bio_vec *bvec, *bvprv; |
1314 | struct bio *bio; | 1317 | struct bio *bio; |
@@ -1361,7 +1364,7 @@ EXPORT_SYMBOL(blk_rq_map_sg); | |||
1361 | * specific ones if so desired | 1364 | * specific ones if so desired |
1362 | */ | 1365 | */ |
1363 | 1366 | ||
1364 | static inline int ll_new_mergeable(request_queue_t *q, | 1367 | static inline int ll_new_mergeable(struct request_queue *q, |
1365 | struct request *req, | 1368 | struct request *req, |
1366 | struct bio *bio) | 1369 | struct bio *bio) |
1367 | { | 1370 | { |
@@ -1382,7 +1385,7 @@ static inline int ll_new_mergeable(request_queue_t *q, | |||
1382 | return 1; | 1385 | return 1; |
1383 | } | 1386 | } |
1384 | 1387 | ||
1385 | static inline int ll_new_hw_segment(request_queue_t *q, | 1388 | static inline int ll_new_hw_segment(struct request_queue *q, |
1386 | struct request *req, | 1389 | struct request *req, |
1387 | struct bio *bio) | 1390 | struct bio *bio) |
1388 | { | 1391 | { |
@@ -1406,7 +1409,7 @@ static inline int ll_new_hw_segment(request_queue_t *q, | |||
1406 | return 1; | 1409 | return 1; |
1407 | } | 1410 | } |
1408 | 1411 | ||
1409 | int ll_back_merge_fn(request_queue_t *q, struct request *req, struct bio *bio) | 1412 | int ll_back_merge_fn(struct request_queue *q, struct request *req, struct bio *bio) |
1410 | { | 1413 | { |
1411 | unsigned short max_sectors; | 1414 | unsigned short max_sectors; |
1412 | int len; | 1415 | int len; |
@@ -1444,7 +1447,7 @@ int ll_back_merge_fn(request_queue_t *q, struct request *req, struct bio *bio) | |||
1444 | } | 1447 | } |
1445 | EXPORT_SYMBOL(ll_back_merge_fn); | 1448 | EXPORT_SYMBOL(ll_back_merge_fn); |
1446 | 1449 | ||
1447 | static int ll_front_merge_fn(request_queue_t *q, struct request *req, | 1450 | static int ll_front_merge_fn(struct request_queue *q, struct request *req, |
1448 | struct bio *bio) | 1451 | struct bio *bio) |
1449 | { | 1452 | { |
1450 | unsigned short max_sectors; | 1453 | unsigned short max_sectors; |
@@ -1483,7 +1486,7 @@ static int ll_front_merge_fn(request_queue_t *q, struct request *req, | |||
1483 | return ll_new_hw_segment(q, req, bio); | 1486 | return ll_new_hw_segment(q, req, bio); |
1484 | } | 1487 | } |
1485 | 1488 | ||
1486 | static int ll_merge_requests_fn(request_queue_t *q, struct request *req, | 1489 | static int ll_merge_requests_fn(struct request_queue *q, struct request *req, |
1487 | struct request *next) | 1490 | struct request *next) |
1488 | { | 1491 | { |
1489 | int total_phys_segments; | 1492 | int total_phys_segments; |
@@ -1539,7 +1542,7 @@ static int ll_merge_requests_fn(request_queue_t *q, struct request *req, | |||
1539 | * This is called with interrupts off and no requests on the queue and | 1542 | * This is called with interrupts off and no requests on the queue and |
1540 | * with the queue lock held. | 1543 | * with the queue lock held. |
1541 | */ | 1544 | */ |
1542 | void blk_plug_device(request_queue_t *q) | 1545 | void blk_plug_device(struct request_queue *q) |
1543 | { | 1546 | { |
1544 | WARN_ON(!irqs_disabled()); | 1547 | WARN_ON(!irqs_disabled()); |
1545 | 1548 | ||
@@ -1562,7 +1565,7 @@ EXPORT_SYMBOL(blk_plug_device); | |||
1562 | * remove the queue from the plugged list, if present. called with | 1565 | * remove the queue from the plugged list, if present. called with |
1563 | * queue lock held and interrupts disabled. | 1566 | * queue lock held and interrupts disabled. |
1564 | */ | 1567 | */ |
1565 | int blk_remove_plug(request_queue_t *q) | 1568 | int blk_remove_plug(struct request_queue *q) |
1566 | { | 1569 | { |
1567 | WARN_ON(!irqs_disabled()); | 1570 | WARN_ON(!irqs_disabled()); |
1568 | 1571 | ||
@@ -1578,7 +1581,7 @@ EXPORT_SYMBOL(blk_remove_plug); | |||
1578 | /* | 1581 | /* |
1579 | * remove the plug and let it rip.. | 1582 | * remove the plug and let it rip.. |
1580 | */ | 1583 | */ |
1581 | void __generic_unplug_device(request_queue_t *q) | 1584 | void __generic_unplug_device(struct request_queue *q) |
1582 | { | 1585 | { |
1583 | if (unlikely(blk_queue_stopped(q))) | 1586 | if (unlikely(blk_queue_stopped(q))) |
1584 | return; | 1587 | return; |
@@ -1592,7 +1595,7 @@ EXPORT_SYMBOL(__generic_unplug_device); | |||
1592 | 1595 | ||
1593 | /** | 1596 | /** |
1594 | * generic_unplug_device - fire a request queue | 1597 | * generic_unplug_device - fire a request queue |
1595 | * @q: The &request_queue_t in question | 1598 | * @q: The &struct request_queue in question |
1596 | * | 1599 | * |
1597 | * Description: | 1600 | * Description: |
1598 | * Linux uses plugging to build bigger requests queues before letting | 1601 | * Linux uses plugging to build bigger requests queues before letting |
@@ -1601,7 +1604,7 @@ EXPORT_SYMBOL(__generic_unplug_device); | |||
1601 | * gets unplugged, the request_fn defined for the queue is invoked and | 1604 | * gets unplugged, the request_fn defined for the queue is invoked and |
1602 | * transfers started. | 1605 | * transfers started. |
1603 | **/ | 1606 | **/ |
1604 | void generic_unplug_device(request_queue_t *q) | 1607 | void generic_unplug_device(struct request_queue *q) |
1605 | { | 1608 | { |
1606 | spin_lock_irq(q->queue_lock); | 1609 | spin_lock_irq(q->queue_lock); |
1607 | __generic_unplug_device(q); | 1610 | __generic_unplug_device(q); |
@@ -1612,7 +1615,7 @@ EXPORT_SYMBOL(generic_unplug_device); | |||
1612 | static void blk_backing_dev_unplug(struct backing_dev_info *bdi, | 1615 | static void blk_backing_dev_unplug(struct backing_dev_info *bdi, |
1613 | struct page *page) | 1616 | struct page *page) |
1614 | { | 1617 | { |
1615 | request_queue_t *q = bdi->unplug_io_data; | 1618 | struct request_queue *q = bdi->unplug_io_data; |
1616 | 1619 | ||
1617 | /* | 1620 | /* |
1618 | * devices don't necessarily have an ->unplug_fn defined | 1621 | * devices don't necessarily have an ->unplug_fn defined |
@@ -1627,7 +1630,8 @@ static void blk_backing_dev_unplug(struct backing_dev_info *bdi, | |||
1627 | 1630 | ||
1628 | static void blk_unplug_work(struct work_struct *work) | 1631 | static void blk_unplug_work(struct work_struct *work) |
1629 | { | 1632 | { |
1630 | request_queue_t *q = container_of(work, request_queue_t, unplug_work); | 1633 | struct request_queue *q = |
1634 | container_of(work, struct request_queue, unplug_work); | ||
1631 | 1635 | ||
1632 | blk_add_trace_pdu_int(q, BLK_TA_UNPLUG_IO, NULL, | 1636 | blk_add_trace_pdu_int(q, BLK_TA_UNPLUG_IO, NULL, |
1633 | q->rq.count[READ] + q->rq.count[WRITE]); | 1637 | q->rq.count[READ] + q->rq.count[WRITE]); |
@@ -1637,7 +1641,7 @@ static void blk_unplug_work(struct work_struct *work) | |||
1637 | 1641 | ||
1638 | static void blk_unplug_timeout(unsigned long data) | 1642 | static void blk_unplug_timeout(unsigned long data) |
1639 | { | 1643 | { |
1640 | request_queue_t *q = (request_queue_t *)data; | 1644 | struct request_queue *q = (struct request_queue *)data; |
1641 | 1645 | ||
1642 | blk_add_trace_pdu_int(q, BLK_TA_UNPLUG_TIMER, NULL, | 1646 | blk_add_trace_pdu_int(q, BLK_TA_UNPLUG_TIMER, NULL, |
1643 | q->rq.count[READ] + q->rq.count[WRITE]); | 1647 | q->rq.count[READ] + q->rq.count[WRITE]); |
@@ -1647,14 +1651,14 @@ static void blk_unplug_timeout(unsigned long data) | |||
1647 | 1651 | ||
1648 | /** | 1652 | /** |
1649 | * blk_start_queue - restart a previously stopped queue | 1653 | * blk_start_queue - restart a previously stopped queue |
1650 | * @q: The &request_queue_t in question | 1654 | * @q: The &struct request_queue in question |
1651 | * | 1655 | * |
1652 | * Description: | 1656 | * Description: |
1653 | * blk_start_queue() will clear the stop flag on the queue, and call | 1657 | * blk_start_queue() will clear the stop flag on the queue, and call |
1654 | * the request_fn for the queue if it was in a stopped state when | 1658 | * the request_fn for the queue if it was in a stopped state when |
1655 | * entered. Also see blk_stop_queue(). Queue lock must be held. | 1659 | * entered. Also see blk_stop_queue(). Queue lock must be held. |
1656 | **/ | 1660 | **/ |
1657 | void blk_start_queue(request_queue_t *q) | 1661 | void blk_start_queue(struct request_queue *q) |
1658 | { | 1662 | { |
1659 | WARN_ON(!irqs_disabled()); | 1663 | WARN_ON(!irqs_disabled()); |
1660 | 1664 | ||
@@ -1677,7 +1681,7 @@ EXPORT_SYMBOL(blk_start_queue); | |||
1677 | 1681 | ||
1678 | /** | 1682 | /** |
1679 | * blk_stop_queue - stop a queue | 1683 | * blk_stop_queue - stop a queue |
1680 | * @q: The &request_queue_t in question | 1684 | * @q: The &struct request_queue in question |
1681 | * | 1685 | * |
1682 | * Description: | 1686 | * Description: |
1683 | * The Linux block layer assumes that a block driver will consume all | 1687 | * The Linux block layer assumes that a block driver will consume all |
@@ -1689,7 +1693,7 @@ EXPORT_SYMBOL(blk_start_queue); | |||
1689 | * the driver has signalled it's ready to go again. This happens by calling | 1693 | * the driver has signalled it's ready to go again. This happens by calling |
1690 | * blk_start_queue() to restart queue operations. Queue lock must be held. | 1694 | * blk_start_queue() to restart queue operations. Queue lock must be held. |
1691 | **/ | 1695 | **/ |
1692 | void blk_stop_queue(request_queue_t *q) | 1696 | void blk_stop_queue(struct request_queue *q) |
1693 | { | 1697 | { |
1694 | blk_remove_plug(q); | 1698 | blk_remove_plug(q); |
1695 | set_bit(QUEUE_FLAG_STOPPED, &q->queue_flags); | 1699 | set_bit(QUEUE_FLAG_STOPPED, &q->queue_flags); |
@@ -1746,7 +1750,7 @@ void blk_run_queue(struct request_queue *q) | |||
1746 | EXPORT_SYMBOL(blk_run_queue); | 1750 | EXPORT_SYMBOL(blk_run_queue); |
1747 | 1751 | ||
1748 | /** | 1752 | /** |
1749 | * blk_cleanup_queue: - release a &request_queue_t when it is no longer needed | 1753 | * blk_cleanup_queue: - release a &struct request_queue when it is no longer needed |
1750 | * @kobj: the kobj belonging of the request queue to be released | 1754 | * @kobj: the kobj belonging of the request queue to be released |
1751 | * | 1755 | * |
1752 | * Description: | 1756 | * Description: |
@@ -1762,7 +1766,8 @@ EXPORT_SYMBOL(blk_run_queue); | |||
1762 | **/ | 1766 | **/ |
1763 | static void blk_release_queue(struct kobject *kobj) | 1767 | static void blk_release_queue(struct kobject *kobj) |
1764 | { | 1768 | { |
1765 | request_queue_t *q = container_of(kobj, struct request_queue, kobj); | 1769 | struct request_queue *q = |
1770 | container_of(kobj, struct request_queue, kobj); | ||
1766 | struct request_list *rl = &q->rq; | 1771 | struct request_list *rl = &q->rq; |
1767 | 1772 | ||
1768 | blk_sync_queue(q); | 1773 | blk_sync_queue(q); |
@@ -1778,13 +1783,13 @@ static void blk_release_queue(struct kobject *kobj) | |||
1778 | kmem_cache_free(requestq_cachep, q); | 1783 | kmem_cache_free(requestq_cachep, q); |
1779 | } | 1784 | } |
1780 | 1785 | ||
1781 | void blk_put_queue(request_queue_t *q) | 1786 | void blk_put_queue(struct request_queue *q) |
1782 | { | 1787 | { |
1783 | kobject_put(&q->kobj); | 1788 | kobject_put(&q->kobj); |
1784 | } | 1789 | } |
1785 | EXPORT_SYMBOL(blk_put_queue); | 1790 | EXPORT_SYMBOL(blk_put_queue); |
1786 | 1791 | ||
1787 | void blk_cleanup_queue(request_queue_t * q) | 1792 | void blk_cleanup_queue(struct request_queue * q) |
1788 | { | 1793 | { |
1789 | mutex_lock(&q->sysfs_lock); | 1794 | mutex_lock(&q->sysfs_lock); |
1790 | set_bit(QUEUE_FLAG_DEAD, &q->queue_flags); | 1795 | set_bit(QUEUE_FLAG_DEAD, &q->queue_flags); |
@@ -1798,7 +1803,7 @@ void blk_cleanup_queue(request_queue_t * q) | |||
1798 | 1803 | ||
1799 | EXPORT_SYMBOL(blk_cleanup_queue); | 1804 | EXPORT_SYMBOL(blk_cleanup_queue); |
1800 | 1805 | ||
1801 | static int blk_init_free_list(request_queue_t *q) | 1806 | static int blk_init_free_list(struct request_queue *q) |
1802 | { | 1807 | { |
1803 | struct request_list *rl = &q->rq; | 1808 | struct request_list *rl = &q->rq; |
1804 | 1809 | ||
@@ -1817,7 +1822,7 @@ static int blk_init_free_list(request_queue_t *q) | |||
1817 | return 0; | 1822 | return 0; |
1818 | } | 1823 | } |
1819 | 1824 | ||
1820 | request_queue_t *blk_alloc_queue(gfp_t gfp_mask) | 1825 | struct request_queue *blk_alloc_queue(gfp_t gfp_mask) |
1821 | { | 1826 | { |
1822 | return blk_alloc_queue_node(gfp_mask, -1); | 1827 | return blk_alloc_queue_node(gfp_mask, -1); |
1823 | } | 1828 | } |
@@ -1825,9 +1830,9 @@ EXPORT_SYMBOL(blk_alloc_queue); | |||
1825 | 1830 | ||
1826 | static struct kobj_type queue_ktype; | 1831 | static struct kobj_type queue_ktype; |
1827 | 1832 | ||
1828 | request_queue_t *blk_alloc_queue_node(gfp_t gfp_mask, int node_id) | 1833 | struct request_queue *blk_alloc_queue_node(gfp_t gfp_mask, int node_id) |
1829 | { | 1834 | { |
1830 | request_queue_t *q; | 1835 | struct request_queue *q; |
1831 | 1836 | ||
1832 | q = kmem_cache_alloc_node(requestq_cachep, | 1837 | q = kmem_cache_alloc_node(requestq_cachep, |
1833 | gfp_mask | __GFP_ZERO, node_id); | 1838 | gfp_mask | __GFP_ZERO, node_id); |
@@ -1882,16 +1887,16 @@ EXPORT_SYMBOL(blk_alloc_queue_node); | |||
1882 | * when the block device is deactivated (such as at module unload). | 1887 | * when the block device is deactivated (such as at module unload). |
1883 | **/ | 1888 | **/ |
1884 | 1889 | ||
1885 | request_queue_t *blk_init_queue(request_fn_proc *rfn, spinlock_t *lock) | 1890 | struct request_queue *blk_init_queue(request_fn_proc *rfn, spinlock_t *lock) |
1886 | { | 1891 | { |
1887 | return blk_init_queue_node(rfn, lock, -1); | 1892 | return blk_init_queue_node(rfn, lock, -1); |
1888 | } | 1893 | } |
1889 | EXPORT_SYMBOL(blk_init_queue); | 1894 | EXPORT_SYMBOL(blk_init_queue); |
1890 | 1895 | ||
1891 | request_queue_t * | 1896 | struct request_queue * |
1892 | blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id) | 1897 | blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id) |
1893 | { | 1898 | { |
1894 | request_queue_t *q = blk_alloc_queue_node(GFP_KERNEL, node_id); | 1899 | struct request_queue *q = blk_alloc_queue_node(GFP_KERNEL, node_id); |
1895 | 1900 | ||
1896 | if (!q) | 1901 | if (!q) |
1897 | return NULL; | 1902 | return NULL; |
@@ -1940,7 +1945,7 @@ blk_init_queue_node(request_fn_proc *rfn, spinlock_t *lock, int node_id) | |||
1940 | } | 1945 | } |
1941 | EXPORT_SYMBOL(blk_init_queue_node); | 1946 | EXPORT_SYMBOL(blk_init_queue_node); |
1942 | 1947 | ||
1943 | int blk_get_queue(request_queue_t *q) | 1948 | int blk_get_queue(struct request_queue *q) |
1944 | { | 1949 | { |
1945 | if (likely(!test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) { | 1950 | if (likely(!test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) { |
1946 | kobject_get(&q->kobj); | 1951 | kobject_get(&q->kobj); |
@@ -1952,7 +1957,7 @@ int blk_get_queue(request_queue_t *q) | |||
1952 | 1957 | ||
1953 | EXPORT_SYMBOL(blk_get_queue); | 1958 | EXPORT_SYMBOL(blk_get_queue); |
1954 | 1959 | ||
1955 | static inline void blk_free_request(request_queue_t *q, struct request *rq) | 1960 | static inline void blk_free_request(struct request_queue *q, struct request *rq) |
1956 | { | 1961 | { |
1957 | if (rq->cmd_flags & REQ_ELVPRIV) | 1962 | if (rq->cmd_flags & REQ_ELVPRIV) |
1958 | elv_put_request(q, rq); | 1963 | elv_put_request(q, rq); |
@@ -1960,7 +1965,7 @@ static inline void blk_free_request(request_queue_t *q, struct request *rq) | |||
1960 | } | 1965 | } |
1961 | 1966 | ||
1962 | static struct request * | 1967 | static struct request * |
1963 | blk_alloc_request(request_queue_t *q, int rw, int priv, gfp_t gfp_mask) | 1968 | blk_alloc_request(struct request_queue *q, int rw, int priv, gfp_t gfp_mask) |
1964 | { | 1969 | { |
1965 | struct request *rq = mempool_alloc(q->rq.rq_pool, gfp_mask); | 1970 | struct request *rq = mempool_alloc(q->rq.rq_pool, gfp_mask); |
1966 | 1971 | ||
@@ -1988,7 +1993,7 @@ blk_alloc_request(request_queue_t *q, int rw, int priv, gfp_t gfp_mask) | |||
1988 | * ioc_batching returns true if the ioc is a valid batching request and | 1993 | * ioc_batching returns true if the ioc is a valid batching request and |
1989 | * should be given priority access to a request. | 1994 | * should be given priority access to a request. |
1990 | */ | 1995 | */ |
1991 | static inline int ioc_batching(request_queue_t *q, struct io_context *ioc) | 1996 | static inline int ioc_batching(struct request_queue *q, struct io_context *ioc) |
1992 | { | 1997 | { |
1993 | if (!ioc) | 1998 | if (!ioc) |
1994 | return 0; | 1999 | return 0; |
@@ -2009,7 +2014,7 @@ static inline int ioc_batching(request_queue_t *q, struct io_context *ioc) | |||
2009 | * is the behaviour we want though - once it gets a wakeup it should be given | 2014 | * is the behaviour we want though - once it gets a wakeup it should be given |
2010 | * a nice run. | 2015 | * a nice run. |
2011 | */ | 2016 | */ |
2012 | static void ioc_set_batching(request_queue_t *q, struct io_context *ioc) | 2017 | static void ioc_set_batching(struct request_queue *q, struct io_context *ioc) |
2013 | { | 2018 | { |
2014 | if (!ioc || ioc_batching(q, ioc)) | 2019 | if (!ioc || ioc_batching(q, ioc)) |
2015 | return; | 2020 | return; |
@@ -2018,7 +2023,7 @@ static void ioc_set_batching(request_queue_t *q, struct io_context *ioc) | |||
2018 | ioc->last_waited = jiffies; | 2023 | ioc->last_waited = jiffies; |
2019 | } | 2024 | } |
2020 | 2025 | ||
2021 | static void __freed_request(request_queue_t *q, int rw) | 2026 | static void __freed_request(struct request_queue *q, int rw) |
2022 | { | 2027 | { |
2023 | struct request_list *rl = &q->rq; | 2028 | struct request_list *rl = &q->rq; |
2024 | 2029 | ||
@@ -2037,7 +2042,7 @@ static void __freed_request(request_queue_t *q, int rw) | |||
2037 | * A request has just been released. Account for it, update the full and | 2042 | * A request has just been released. Account for it, update the full and |
2038 | * congestion status, wake up any waiters. Called under q->queue_lock. | 2043 | * congestion status, wake up any waiters. Called under q->queue_lock. |
2039 | */ | 2044 | */ |
2040 | static void freed_request(request_queue_t *q, int rw, int priv) | 2045 | static void freed_request(struct request_queue *q, int rw, int priv) |
2041 | { | 2046 | { |
2042 | struct request_list *rl = &q->rq; | 2047 | struct request_list *rl = &q->rq; |
2043 | 2048 | ||
@@ -2057,7 +2062,7 @@ static void freed_request(request_queue_t *q, int rw, int priv) | |||
2057 | * Returns NULL on failure, with queue_lock held. | 2062 | * Returns NULL on failure, with queue_lock held. |
2058 | * Returns !NULL on success, with queue_lock *not held*. | 2063 | * Returns !NULL on success, with queue_lock *not held*. |
2059 | */ | 2064 | */ |
2060 | static struct request *get_request(request_queue_t *q, int rw_flags, | 2065 | static struct request *get_request(struct request_queue *q, int rw_flags, |
2061 | struct bio *bio, gfp_t gfp_mask) | 2066 | struct bio *bio, gfp_t gfp_mask) |
2062 | { | 2067 | { |
2063 | struct request *rq = NULL; | 2068 | struct request *rq = NULL; |
@@ -2162,7 +2167,7 @@ out: | |||
2162 | * | 2167 | * |
2163 | * Called with q->queue_lock held, and returns with it unlocked. | 2168 | * Called with q->queue_lock held, and returns with it unlocked. |
2164 | */ | 2169 | */ |
2165 | static struct request *get_request_wait(request_queue_t *q, int rw_flags, | 2170 | static struct request *get_request_wait(struct request_queue *q, int rw_flags, |
2166 | struct bio *bio) | 2171 | struct bio *bio) |
2167 | { | 2172 | { |
2168 | const int rw = rw_flags & 0x01; | 2173 | const int rw = rw_flags & 0x01; |
@@ -2204,7 +2209,7 @@ static struct request *get_request_wait(request_queue_t *q, int rw_flags, | |||
2204 | return rq; | 2209 | return rq; |
2205 | } | 2210 | } |
2206 | 2211 | ||
2207 | struct request *blk_get_request(request_queue_t *q, int rw, gfp_t gfp_mask) | 2212 | struct request *blk_get_request(struct request_queue *q, int rw, gfp_t gfp_mask) |
2208 | { | 2213 | { |
2209 | struct request *rq; | 2214 | struct request *rq; |
2210 | 2215 | ||
@@ -2234,7 +2239,7 @@ EXPORT_SYMBOL(blk_get_request); | |||
2234 | * | 2239 | * |
2235 | * The queue lock must be held with interrupts disabled. | 2240 | * The queue lock must be held with interrupts disabled. |
2236 | */ | 2241 | */ |
2237 | void blk_start_queueing(request_queue_t *q) | 2242 | void blk_start_queueing(struct request_queue *q) |
2238 | { | 2243 | { |
2239 | if (!blk_queue_plugged(q)) | 2244 | if (!blk_queue_plugged(q)) |
2240 | q->request_fn(q); | 2245 | q->request_fn(q); |
@@ -2253,7 +2258,7 @@ EXPORT_SYMBOL(blk_start_queueing); | |||
2253 | * more, when that condition happens we need to put the request back | 2258 | * more, when that condition happens we need to put the request back |
2254 | * on the queue. Must be called with queue lock held. | 2259 | * on the queue. Must be called with queue lock held. |
2255 | */ | 2260 | */ |
2256 | void blk_requeue_request(request_queue_t *q, struct request *rq) | 2261 | void blk_requeue_request(struct request_queue *q, struct request *rq) |
2257 | { | 2262 | { |
2258 | blk_add_trace_rq(q, rq, BLK_TA_REQUEUE); | 2263 | blk_add_trace_rq(q, rq, BLK_TA_REQUEUE); |
2259 | 2264 | ||
@@ -2284,7 +2289,7 @@ EXPORT_SYMBOL(blk_requeue_request); | |||
2284 | * of the queue for things like a QUEUE_FULL message from a device, or a | 2289 | * of the queue for things like a QUEUE_FULL message from a device, or a |
2285 | * host that is unable to accept a particular command. | 2290 | * host that is unable to accept a particular command. |
2286 | */ | 2291 | */ |
2287 | void blk_insert_request(request_queue_t *q, struct request *rq, | 2292 | void blk_insert_request(struct request_queue *q, struct request *rq, |
2288 | int at_head, void *data) | 2293 | int at_head, void *data) |
2289 | { | 2294 | { |
2290 | int where = at_head ? ELEVATOR_INSERT_FRONT : ELEVATOR_INSERT_BACK; | 2295 | int where = at_head ? ELEVATOR_INSERT_FRONT : ELEVATOR_INSERT_BACK; |
@@ -2330,7 +2335,7 @@ static int __blk_rq_unmap_user(struct bio *bio) | |||
2330 | return ret; | 2335 | return ret; |
2331 | } | 2336 | } |
2332 | 2337 | ||
2333 | static int __blk_rq_map_user(request_queue_t *q, struct request *rq, | 2338 | static int __blk_rq_map_user(struct request_queue *q, struct request *rq, |
2334 | void __user *ubuf, unsigned int len) | 2339 | void __user *ubuf, unsigned int len) |
2335 | { | 2340 | { |
2336 | unsigned long uaddr; | 2341 | unsigned long uaddr; |
@@ -2403,8 +2408,8 @@ unmap_bio: | |||
2403 | * original bio must be passed back in to blk_rq_unmap_user() for proper | 2408 | * original bio must be passed back in to blk_rq_unmap_user() for proper |
2404 | * unmapping. | 2409 | * unmapping. |
2405 | */ | 2410 | */ |
2406 | int blk_rq_map_user(request_queue_t *q, struct request *rq, void __user *ubuf, | 2411 | int blk_rq_map_user(struct request_queue *q, struct request *rq, |
2407 | unsigned long len) | 2412 | void __user *ubuf, unsigned long len) |
2408 | { | 2413 | { |
2409 | unsigned long bytes_read = 0; | 2414 | unsigned long bytes_read = 0; |
2410 | struct bio *bio = NULL; | 2415 | struct bio *bio = NULL; |
@@ -2470,7 +2475,7 @@ EXPORT_SYMBOL(blk_rq_map_user); | |||
2470 | * original bio must be passed back in to blk_rq_unmap_user() for proper | 2475 | * original bio must be passed back in to blk_rq_unmap_user() for proper |
2471 | * unmapping. | 2476 | * unmapping. |
2472 | */ | 2477 | */ |
2473 | int blk_rq_map_user_iov(request_queue_t *q, struct request *rq, | 2478 | int blk_rq_map_user_iov(struct request_queue *q, struct request *rq, |
2474 | struct sg_iovec *iov, int iov_count, unsigned int len) | 2479 | struct sg_iovec *iov, int iov_count, unsigned int len) |
2475 | { | 2480 | { |
2476 | struct bio *bio; | 2481 | struct bio *bio; |
@@ -2540,7 +2545,7 @@ EXPORT_SYMBOL(blk_rq_unmap_user); | |||
2540 | * @len: length of user data | 2545 | * @len: length of user data |
2541 | * @gfp_mask: memory allocation flags | 2546 | * @gfp_mask: memory allocation flags |
2542 | */ | 2547 | */ |
2543 | int blk_rq_map_kern(request_queue_t *q, struct request *rq, void *kbuf, | 2548 | int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf, |
2544 | unsigned int len, gfp_t gfp_mask) | 2549 | unsigned int len, gfp_t gfp_mask) |
2545 | { | 2550 | { |
2546 | struct bio *bio; | 2551 | struct bio *bio; |
@@ -2577,7 +2582,7 @@ EXPORT_SYMBOL(blk_rq_map_kern); | |||
2577 | * Insert a fully prepared request at the back of the io scheduler queue | 2582 | * Insert a fully prepared request at the back of the io scheduler queue |
2578 | * for execution. Don't wait for completion. | 2583 | * for execution. Don't wait for completion. |
2579 | */ | 2584 | */ |
2580 | void blk_execute_rq_nowait(request_queue_t *q, struct gendisk *bd_disk, | 2585 | void blk_execute_rq_nowait(struct request_queue *q, struct gendisk *bd_disk, |
2581 | struct request *rq, int at_head, | 2586 | struct request *rq, int at_head, |
2582 | rq_end_io_fn *done) | 2587 | rq_end_io_fn *done) |
2583 | { | 2588 | { |
@@ -2605,7 +2610,7 @@ EXPORT_SYMBOL_GPL(blk_execute_rq_nowait); | |||
2605 | * Insert a fully prepared request at the back of the io scheduler queue | 2610 | * Insert a fully prepared request at the back of the io scheduler queue |
2606 | * for execution and wait for completion. | 2611 | * for execution and wait for completion. |
2607 | */ | 2612 | */ |
2608 | int blk_execute_rq(request_queue_t *q, struct gendisk *bd_disk, | 2613 | int blk_execute_rq(struct request_queue *q, struct gendisk *bd_disk, |
2609 | struct request *rq, int at_head) | 2614 | struct request *rq, int at_head) |
2610 | { | 2615 | { |
2611 | DECLARE_COMPLETION_ONSTACK(wait); | 2616 | DECLARE_COMPLETION_ONSTACK(wait); |
@@ -2648,7 +2653,7 @@ EXPORT_SYMBOL(blk_execute_rq); | |||
2648 | */ | 2653 | */ |
2649 | int blkdev_issue_flush(struct block_device *bdev, sector_t *error_sector) | 2654 | int blkdev_issue_flush(struct block_device *bdev, sector_t *error_sector) |
2650 | { | 2655 | { |
2651 | request_queue_t *q; | 2656 | struct request_queue *q; |
2652 | 2657 | ||
2653 | if (bdev->bd_disk == NULL) | 2658 | if (bdev->bd_disk == NULL) |
2654 | return -ENXIO; | 2659 | return -ENXIO; |
@@ -2684,7 +2689,7 @@ static void drive_stat_acct(struct request *rq, int nr_sectors, int new_io) | |||
2684 | * queue lock is held and interrupts disabled, as we muck with the | 2689 | * queue lock is held and interrupts disabled, as we muck with the |
2685 | * request queue list. | 2690 | * request queue list. |
2686 | */ | 2691 | */ |
2687 | static inline void add_request(request_queue_t * q, struct request * req) | 2692 | static inline void add_request(struct request_queue * q, struct request * req) |
2688 | { | 2693 | { |
2689 | drive_stat_acct(req, req->nr_sectors, 1); | 2694 | drive_stat_acct(req, req->nr_sectors, 1); |
2690 | 2695 | ||
@@ -2730,7 +2735,7 @@ EXPORT_SYMBOL_GPL(disk_round_stats); | |||
2730 | /* | 2735 | /* |
2731 | * queue lock must be held | 2736 | * queue lock must be held |
2732 | */ | 2737 | */ |
2733 | void __blk_put_request(request_queue_t *q, struct request *req) | 2738 | void __blk_put_request(struct request_queue *q, struct request *req) |
2734 | { | 2739 | { |
2735 | if (unlikely(!q)) | 2740 | if (unlikely(!q)) |
2736 | return; | 2741 | return; |
@@ -2760,7 +2765,7 @@ EXPORT_SYMBOL_GPL(__blk_put_request); | |||
2760 | void blk_put_request(struct request *req) | 2765 | void blk_put_request(struct request *req) |
2761 | { | 2766 | { |
2762 | unsigned long flags; | 2767 | unsigned long flags; |
2763 | request_queue_t *q = req->q; | 2768 | struct request_queue *q = req->q; |
2764 | 2769 | ||
2765 | /* | 2770 | /* |
2766 | * Gee, IDE calls in w/ NULL q. Fix IDE and remove the | 2771 | * Gee, IDE calls in w/ NULL q. Fix IDE and remove the |
@@ -2798,7 +2803,7 @@ EXPORT_SYMBOL(blk_end_sync_rq); | |||
2798 | /* | 2803 | /* |
2799 | * Has to be called with the request spinlock acquired | 2804 | * Has to be called with the request spinlock acquired |
2800 | */ | 2805 | */ |
2801 | static int attempt_merge(request_queue_t *q, struct request *req, | 2806 | static int attempt_merge(struct request_queue *q, struct request *req, |
2802 | struct request *next) | 2807 | struct request *next) |
2803 | { | 2808 | { |
2804 | if (!rq_mergeable(req) || !rq_mergeable(next)) | 2809 | if (!rq_mergeable(req) || !rq_mergeable(next)) |
@@ -2851,7 +2856,8 @@ static int attempt_merge(request_queue_t *q, struct request *req, | |||
2851 | return 1; | 2856 | return 1; |
2852 | } | 2857 | } |
2853 | 2858 | ||
2854 | static inline int attempt_back_merge(request_queue_t *q, struct request *rq) | 2859 | static inline int attempt_back_merge(struct request_queue *q, |
2860 | struct request *rq) | ||
2855 | { | 2861 | { |
2856 | struct request *next = elv_latter_request(q, rq); | 2862 | struct request *next = elv_latter_request(q, rq); |
2857 | 2863 | ||
@@ -2861,7 +2867,8 @@ static inline int attempt_back_merge(request_queue_t *q, struct request *rq) | |||
2861 | return 0; | 2867 | return 0; |
2862 | } | 2868 | } |
2863 | 2869 | ||
2864 | static inline int attempt_front_merge(request_queue_t *q, struct request *rq) | 2870 | static inline int attempt_front_merge(struct request_queue *q, |
2871 | struct request *rq) | ||
2865 | { | 2872 | { |
2866 | struct request *prev = elv_former_request(q, rq); | 2873 | struct request *prev = elv_former_request(q, rq); |
2867 | 2874 | ||
@@ -2905,7 +2912,7 @@ static void init_request_from_bio(struct request *req, struct bio *bio) | |||
2905 | req->start_time = jiffies; | 2912 | req->start_time = jiffies; |
2906 | } | 2913 | } |
2907 | 2914 | ||
2908 | static int __make_request(request_queue_t *q, struct bio *bio) | 2915 | static int __make_request(struct request_queue *q, struct bio *bio) |
2909 | { | 2916 | { |
2910 | struct request *req; | 2917 | struct request *req; |
2911 | int el_ret, nr_sectors, barrier, err; | 2918 | int el_ret, nr_sectors, barrier, err; |
@@ -3119,7 +3126,7 @@ static inline int should_fail_request(struct bio *bio) | |||
3119 | */ | 3126 | */ |
3120 | static inline void __generic_make_request(struct bio *bio) | 3127 | static inline void __generic_make_request(struct bio *bio) |
3121 | { | 3128 | { |
3122 | request_queue_t *q; | 3129 | struct request_queue *q; |
3123 | sector_t maxsector; | 3130 | sector_t maxsector; |
3124 | sector_t old_sector; | 3131 | sector_t old_sector; |
3125 | int ret, nr_sectors = bio_sectors(bio); | 3132 | int ret, nr_sectors = bio_sectors(bio); |
@@ -3312,7 +3319,7 @@ static void blk_recalc_rq_segments(struct request *rq) | |||
3312 | struct bio *bio, *prevbio = NULL; | 3319 | struct bio *bio, *prevbio = NULL; |
3313 | int nr_phys_segs, nr_hw_segs; | 3320 | int nr_phys_segs, nr_hw_segs; |
3314 | unsigned int phys_size, hw_size; | 3321 | unsigned int phys_size, hw_size; |
3315 | request_queue_t *q = rq->q; | 3322 | struct request_queue *q = rq->q; |
3316 | 3323 | ||
3317 | if (!rq->bio) | 3324 | if (!rq->bio) |
3318 | return; | 3325 | return; |
@@ -3658,7 +3665,8 @@ void end_request(struct request *req, int uptodate) | |||
3658 | 3665 | ||
3659 | EXPORT_SYMBOL(end_request); | 3666 | EXPORT_SYMBOL(end_request); |
3660 | 3667 | ||
3661 | void blk_rq_bio_prep(request_queue_t *q, struct request *rq, struct bio *bio) | 3668 | void blk_rq_bio_prep(struct request_queue *q, struct request *rq, |
3669 | struct bio *bio) | ||
3662 | { | 3670 | { |
3663 | /* first two bits are identical in rq->cmd_flags and bio->bi_rw */ | 3671 | /* first two bits are identical in rq->cmd_flags and bio->bi_rw */ |
3664 | rq->cmd_flags |= (bio->bi_rw & 3); | 3672 | rq->cmd_flags |= (bio->bi_rw & 3); |
@@ -3701,7 +3709,7 @@ int __init blk_dev_init(void) | |||
3701 | sizeof(struct request), 0, SLAB_PANIC, NULL); | 3709 | sizeof(struct request), 0, SLAB_PANIC, NULL); |
3702 | 3710 | ||
3703 | requestq_cachep = kmem_cache_create("blkdev_queue", | 3711 | requestq_cachep = kmem_cache_create("blkdev_queue", |
3704 | sizeof(request_queue_t), 0, SLAB_PANIC, NULL); | 3712 | sizeof(struct request_queue), 0, SLAB_PANIC, NULL); |
3705 | 3713 | ||
3706 | iocontext_cachep = kmem_cache_create("blkdev_ioc", | 3714 | iocontext_cachep = kmem_cache_create("blkdev_ioc", |
3707 | sizeof(struct io_context), 0, SLAB_PANIC, NULL); | 3715 | sizeof(struct io_context), 0, SLAB_PANIC, NULL); |
@@ -4021,7 +4029,8 @@ static ssize_t | |||
4021 | queue_attr_show(struct kobject *kobj, struct attribute *attr, char *page) | 4029 | queue_attr_show(struct kobject *kobj, struct attribute *attr, char *page) |
4022 | { | 4030 | { |
4023 | struct queue_sysfs_entry *entry = to_queue(attr); | 4031 | struct queue_sysfs_entry *entry = to_queue(attr); |
4024 | request_queue_t *q = container_of(kobj, struct request_queue, kobj); | 4032 | struct request_queue *q = |
4033 | container_of(kobj, struct request_queue, kobj); | ||
4025 | ssize_t res; | 4034 | ssize_t res; |
4026 | 4035 | ||
4027 | if (!entry->show) | 4036 | if (!entry->show) |
@@ -4041,7 +4050,7 @@ queue_attr_store(struct kobject *kobj, struct attribute *attr, | |||
4041 | const char *page, size_t length) | 4050 | const char *page, size_t length) |
4042 | { | 4051 | { |
4043 | struct queue_sysfs_entry *entry = to_queue(attr); | 4052 | struct queue_sysfs_entry *entry = to_queue(attr); |
4044 | request_queue_t *q = container_of(kobj, struct request_queue, kobj); | 4053 | struct request_queue *q = container_of(kobj, struct request_queue, kobj); |
4045 | 4054 | ||
4046 | ssize_t res; | 4055 | ssize_t res; |
4047 | 4056 | ||
@@ -4072,7 +4081,7 @@ int blk_register_queue(struct gendisk *disk) | |||
4072 | { | 4081 | { |
4073 | int ret; | 4082 | int ret; |
4074 | 4083 | ||
4075 | request_queue_t *q = disk->queue; | 4084 | struct request_queue *q = disk->queue; |
4076 | 4085 | ||
4077 | if (!q || !q->request_fn) | 4086 | if (!q || !q->request_fn) |
4078 | return -ENXIO; | 4087 | return -ENXIO; |
@@ -4097,7 +4106,7 @@ int blk_register_queue(struct gendisk *disk) | |||
4097 | 4106 | ||
4098 | void blk_unregister_queue(struct gendisk *disk) | 4107 | void blk_unregister_queue(struct gendisk *disk) |
4099 | { | 4108 | { |
4100 | request_queue_t *q = disk->queue; | 4109 | struct request_queue *q = disk->queue; |
4101 | 4110 | ||
4102 | if (q && q->request_fn) { | 4111 | if (q && q->request_fn) { |
4103 | elv_unregister_queue(q); | 4112 | elv_unregister_queue(q); |