Source
544
544
if (err) {
545
545
if (err == BLK_STS_AGAIN && (bio->bi_opf & REQ_NOWAIT))
546
546
dio->io_error = -EAGAIN;
547
547
else
548
548
dio->io_error = -EIO;
549
549
}
550
550
551
551
if (dio->is_async && dio->op == REQ_OP_READ && dio->should_dirty) {
552
552
bio_check_pages_dirty(bio); /* transfers ownership */
553
553
} else {
554
-
bio_for_each_segment_all(bvec, bio, i) {
554
+
struct bvec_iter_all iter_all;
555
+
556
+
bio_for_each_segment_all(bvec, bio, i, iter_all) {
555
557
struct page *page = bvec->bv_page;
556
558
557
559
if (dio->op == REQ_OP_READ && !PageCompound(page) &&
558
560
dio->should_dirty)
559
561
set_page_dirty_lock(page);
560
562
put_page(page);
561
563
}
562
564
bio_put(bio);
563
565
}
564
566
return err;