+{
+ unsigned int offset = 0;
+ struct req_iterator iter;
-+ struct bio_vec *bvec;
++ struct bio_vec bvec;
+ unsigned int i = 0;
+ size_t size;
+ void *buf;
+ dev_dbg(&dev->sbd.core,
+ "%s:%u: bio %u: %u segs %u sectors from %lu\n",
+ __func__, __LINE__, i, bio_segments(iter.bio),
-+ bio_sectors(iter.bio), iter.bio->bi_sector);
++ bio_sectors(iter.bio), iter.bio->bi_iter.bi_sector);
+
-+ size = bvec->bv_len;
-+ buf = bvec_kmap_irq(bvec, &flags);
++ size = bvec.bv_len;
++ buf = bvec_kmap_irq(&bvec, &flags);
+ if (gather)
+ memcpy(dev->bounce_buf+offset, buf, size);
+ else
+ memcpy(buf, dev->bounce_buf+offset, size);
+ offset += size;
-+ flush_kernel_dcache_page(bvec->bv_page);
++ flush_kernel_dcache_page(bvec.bv_page);
+ bvec_kunmap_irq(buf, &flags);
+ i++;
+ }
+
+#ifdef DEBUG
+ unsigned int n = 0;
-+ struct bio_vec *bv;
++ struct bio_vec bv;
+ struct req_iterator iter;
+
+ rq_for_each_segment(bv, req, iter)
+{
+ unsigned int offset = 0;
+ struct req_iterator iter;
-+ struct bio_vec *bvec;
++ struct bio_vec bvec;
+ unsigned int i = 0;
+ size_t size;
+ void *buf;
+ dev_dbg(&dev->sbd.core,
+ "%s:%u: bio %u: %u segs %u sectors from %lu\n",
+ __func__, __LINE__, i, bio_segments(iter.bio),
-+ bio_sectors(iter.bio), iter.bio->bi_sector);
++ bio_sectors(iter.bio), iter.bio->bi_iter.bi_sector);
+
-+ size = bvec->bv_len;
-+ buf = bvec_kmap_irq(bvec, &flags);
++ size = bvec.bv_len;
++ buf = bvec_kmap_irq(&bvec, &flags);
+ if (gather)
+ memcpy(dev->bounce_buf+offset, buf, size);
+ else
+ memcpy(buf, dev->bounce_buf+offset, size);
+ offset += size;
-+ flush_kernel_dcache_page(bvec->bv_page);
++ flush_kernel_dcache_page(bvec.bv_page);
+ bvec_kunmap_irq(buf, &flags);
+ i++;
+ }
+
+#ifdef DEBUG
+ unsigned int n = 0;
-+ struct bio_vec *bv;
++ struct bio_vec bv;
+ struct req_iterator iter;
+
+ rq_for_each_segment(bv, req, iter)