Lines Matching refs:fi
282 static inline void bio_first_folio(struct folio_iter *fi, struct bio *bio, in bio_first_folio() argument
288 fi->folio = NULL; in bio_first_folio()
292 fi->folio = page_folio(bvec->bv_page); in bio_first_folio()
293 fi->offset = bvec->bv_offset + in bio_first_folio()
294 PAGE_SIZE * (bvec->bv_page - &fi->folio->page); in bio_first_folio()
295 fi->_seg_count = bvec->bv_len; in bio_first_folio()
296 fi->length = min(folio_size(fi->folio) - fi->offset, fi->_seg_count); in bio_first_folio()
297 fi->_next = folio_next(fi->folio); in bio_first_folio()
298 fi->_i = i; in bio_first_folio()
301 static inline void bio_next_folio(struct folio_iter *fi, struct bio *bio) in bio_next_folio() argument
303 fi->_seg_count -= fi->length; in bio_next_folio()
304 if (fi->_seg_count) { in bio_next_folio()
305 fi->folio = fi->_next; in bio_next_folio()
306 fi->offset = 0; in bio_next_folio()
307 fi->length = min(folio_size(fi->folio), fi->_seg_count); in bio_next_folio()
308 fi->_next = folio_next(fi->folio); in bio_next_folio()
310 bio_first_folio(fi, bio, fi->_i + 1); in bio_next_folio()
319 #define bio_for_each_folio_all(fi, bio) \ argument
320 for (bio_first_folio(&fi, bio, 0); fi.folio; bio_next_folio(&fi, bio))