Introduce rq_for_each_segment replacing rq_for_each_bio
[safe/jmp/linux-2.6] / drivers / s390 / block / dasd_diag.c
index d32c60d..6bb9676 100644 (file)
@@ -472,14 +472,13 @@ dasd_diag_build_cp(struct dasd_device * device, struct request *req)
        struct dasd_ccw_req *cqr;
        struct dasd_diag_req *dreq;
        struct dasd_diag_bio *dbio;
-       struct bio *bio;
+       struct req_iterator iter;
        struct bio_vec *bv;
        char *dst;
        unsigned int count, datasize;
        sector_t recid, first_rec, last_rec;
        unsigned int blksize, off;
        unsigned char rw_cmd;
-       int i;
 
        if (rq_data_dir(req) == READ)
                rw_cmd = MDSK_READ_REQ;
@@ -493,13 +492,11 @@ dasd_diag_build_cp(struct dasd_device * device, struct request *req)
        last_rec = (req->sector + req->nr_sectors - 1) >> device->s2b_shift;
        /* Check struct bio and count the number of blocks for the request. */
        count = 0;
-       rq_for_each_bio(bio, req) {
-               bio_for_each_segment(bv, bio, i) {
+       rq_for_each_segment(bv, req, iter) {
                        if (bv->bv_len & (blksize - 1))
                                /* Fba can only do full blocks. */
                                return ERR_PTR(-EINVAL);
                        count += bv->bv_len >> (device->s2b_shift + 9);
-               }
        }
        /* Paranoia. */
        if (count != last_rec - first_rec + 1)
@@ -516,8 +513,7 @@ dasd_diag_build_cp(struct dasd_device * device, struct request *req)
        dreq->block_count = count;
        dbio = dreq->bio;
        recid = first_rec;
-       rq_for_each_bio(bio, req) {
-               bio_for_each_segment(bv, bio, i) {
+       rq_for_each_segment(bv, req, iter) {
                        dst = page_address(bv->bv_page) + bv->bv_offset;
                        for (off = 0; off < bv->bv_len; off += blksize) {
                                memset(dbio, 0, sizeof (struct dasd_diag_bio));
@@ -528,7 +524,6 @@ dasd_diag_build_cp(struct dasd_device * device, struct request *req)
                                dst += blksize;
                                recid++;
                        }
-               }
        }
        cqr->retries = DIAG_MAX_RETRIES;
        cqr->buildclk = get_clock();