Lines Matching refs:fi
279 static inline void bio_first_folio(struct folio_iter *fi, struct bio *bio, in bio_first_folio() argument
284 fi->folio = page_folio(bvec->bv_page); in bio_first_folio()
285 fi->offset = bvec->bv_offset + in bio_first_folio()
286 PAGE_SIZE * (bvec->bv_page - &fi->folio->page); in bio_first_folio()
287 fi->_seg_count = bvec->bv_len; in bio_first_folio()
288 fi->length = min(folio_size(fi->folio) - fi->offset, fi->_seg_count); in bio_first_folio()
289 fi->_next = folio_next(fi->folio); in bio_first_folio()
290 fi->_i = i; in bio_first_folio()
293 static inline void bio_next_folio(struct folio_iter *fi, struct bio *bio) in bio_next_folio() argument
295 fi->_seg_count -= fi->length; in bio_next_folio()
296 if (fi->_seg_count) { in bio_next_folio()
297 fi->folio = fi->_next; in bio_next_folio()
298 fi->offset = 0; in bio_next_folio()
299 fi->length = min(folio_size(fi->folio), fi->_seg_count); in bio_next_folio()
300 fi->_next = folio_next(fi->folio); in bio_next_folio()
301 } else if (fi->_i + 1 < bio->bi_vcnt) { in bio_next_folio()
302 bio_first_folio(fi, bio, fi->_i + 1); in bio_next_folio()
304 fi->folio = NULL; in bio_next_folio()
313 #define bio_for_each_folio_all(fi, bio) \ argument
314 for (bio_first_folio(&fi, bio, 0); fi.folio; bio_next_folio(&fi, bio))