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