diff options
author | NeilBrown <neilb@suse.de> | 2007-09-25 06:35:59 -0400 |
---|---|---|
committer | Jens Axboe <axboe@carl.home.kernel.dk> | 2007-10-10 03:25:56 -0400 |
commit | 5705f7021748a69d84d6567e68e8851dab551464 (patch) | |
tree | 5a6dbc8fc6055c0334f4a97540e36a7844b9c482 /drivers/ide/ide-floppy.c | |
parent | 9dfa52831e96194b8649613e3131baa2c109f7dc (diff) |
Introduce rq_for_each_segment replacing rq_for_each_bio
Every usage of rq_for_each_bio wraps a usage of
bio_for_each_segment, so these can be combined into
rq_for_each_segment.
We define "struct req_iterator" to hold the 'bio' and 'index' that
are needed for the double iteration.
Signed-off-by: Neil Brown <neilb@suse.de>
Various compile fixes by me...
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'drivers/ide/ide-floppy.c')
-rw-r--r-- | drivers/ide/ide-floppy.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/drivers/ide/ide-floppy.c b/drivers/ide/ide-floppy.c index ae8e1a64b8ad..a775450d7a38 100644 --- a/drivers/ide/ide-floppy.c +++ b/drivers/ide/ide-floppy.c | |||
@@ -606,13 +606,12 @@ static void idefloppy_input_buffers (ide_drive_t *drive, idefloppy_pc_t *pc, uns | |||
606 | { | 606 | { |
607 | struct request *rq = pc->rq; | 607 | struct request *rq = pc->rq; |
608 | struct bio_vec *bvec; | 608 | struct bio_vec *bvec; |
609 | struct bio *bio; | 609 | struct req_iterator iter; |
610 | unsigned long flags; | 610 | unsigned long flags; |
611 | char *data; | 611 | char *data; |
612 | int count, i, done = 0; | 612 | int count, done = 0; |
613 | 613 | ||
614 | rq_for_each_bio(bio, rq) { | 614 | rq_for_each_segment(bvec, rq, iter) { |
615 | bio_for_each_segment(bvec, bio, i) { | ||
616 | if (!bcount) | 615 | if (!bcount) |
617 | break; | 616 | break; |
618 | 617 | ||
@@ -625,7 +624,6 @@ static void idefloppy_input_buffers (ide_drive_t *drive, idefloppy_pc_t *pc, uns | |||
625 | bcount -= count; | 624 | bcount -= count; |
626 | pc->b_count += count; | 625 | pc->b_count += count; |
627 | done += count; | 626 | done += count; |
628 | } | ||
629 | } | 627 | } |
630 | 628 | ||
631 | idefloppy_do_end_request(drive, 1, done >> 9); | 629 | idefloppy_do_end_request(drive, 1, done >> 9); |
@@ -639,14 +637,13 @@ static void idefloppy_input_buffers (ide_drive_t *drive, idefloppy_pc_t *pc, uns | |||
639 | static void idefloppy_output_buffers (ide_drive_t *drive, idefloppy_pc_t *pc, unsigned int bcount) | 637 | static void idefloppy_output_buffers (ide_drive_t *drive, idefloppy_pc_t *pc, unsigned int bcount) |
640 | { | 638 | { |
641 | struct request *rq = pc->rq; | 639 | struct request *rq = pc->rq; |
642 | struct bio *bio; | 640 | struct req_iterator iter; |
643 | struct bio_vec *bvec; | 641 | struct bio_vec *bvec; |
644 | unsigned long flags; | 642 | unsigned long flags; |
645 | int count, i, done = 0; | 643 | int count, done = 0; |
646 | char *data; | 644 | char *data; |
647 | 645 | ||
648 | rq_for_each_bio(bio, rq) { | 646 | rq_for_each_segment(bvec, rq, iter) { |
649 | bio_for_each_segment(bvec, bio, i) { | ||
650 | if (!bcount) | 647 | if (!bcount) |
651 | break; | 648 | break; |
652 | 649 | ||
@@ -659,7 +656,6 @@ static void idefloppy_output_buffers (ide_drive_t *drive, idefloppy_pc_t *pc, un | |||
659 | bcount -= count; | 656 | bcount -= count; |
660 | pc->b_count += count; | 657 | pc->b_count += count; |
661 | done += count; | 658 | done += count; |
662 | } | ||
663 | } | 659 | } |
664 | 660 | ||
665 | idefloppy_do_end_request(drive, 1, done >> 9); | 661 | idefloppy_do_end_request(drive, 1, done >> 9); |