block: Kill bio_segments()/bi_vcnt usage
[deliverable/linux.git] / fs / f2fs / data.c
index aa3438c571fa9a2dfaf3e1ab61bd4328f580b0d6..a2c8de8ba6ce6d45e9450de5ab8b6c60fb01adea 100644 (file)
@@ -351,23 +351,20 @@ repeat:
 
 static void read_end_io(struct bio *bio, int err)
 {
-       const int uptodate = test_bit(BIO_UPTODATE, &bio->bi_flags);
-       struct bio_vec *bvec = bio->bi_io_vec + bio->bi_vcnt - 1;
+       struct bio_vec *bvec;
+       int i;
 
-       do {
+       bio_for_each_segment_all(bvec, bio, i) {
                struct page *page = bvec->bv_page;
 
-               if (--bvec >= bio->bi_io_vec)
-                       prefetchw(&bvec->bv_page->flags);
-
-               if (uptodate) {
+               if (!err) {
                        SetPageUptodate(page);
                } else {
                        ClearPageUptodate(page);
                        SetPageError(page);
                }
                unlock_page(page);
-       } while (bvec >= bio->bi_io_vec);
+       }
        bio_put(bio);
 }
 
@@ -389,7 +386,7 @@ int f2fs_readpage(struct f2fs_sb_info *sbi, struct page *page,
        bio = f2fs_bio_alloc(bdev, 1);
 
        /* Initialize the bio */
-       bio->bi_sector = SECTOR_FROM_BLOCK(sbi, blk_addr);
+       bio->bi_iter.bi_sector = SECTOR_FROM_BLOCK(sbi, blk_addr);
        bio->bi_end_io = read_end_io;
 
        if (bio_add_page(bio, page, PAGE_CACHE_SIZE, 0) < PAGE_CACHE_SIZE) {
This page took 0.025858 seconds and 5 git commands to generate.