Lines Matching full:folios
858 /* TODO: Add order fgp order flags when large folios are fully enabled. */ in defrag_prepare_one_folio()
868 * The IO for such large folios is not fully tested, thus return in defrag_prepare_one_folio()
869 * an error to reject such folios unless it's an experimental build. in defrag_prepare_one_folio()
1154 struct folio **folios, int nr_pages, in defrag_one_locked_target() argument
1174 * Due to possible large folios, we have to check all folios one by one. in defrag_one_locked_target()
1176 for (int i = 0; i < nr_pages && folios[i]; i++) { in defrag_one_locked_target()
1177 struct folio *folio = folios[i]; in defrag_one_locked_target()
1200 struct folio **folios; in defrag_one_range() local
1210 folios = kcalloc(nr_pages, sizeof(struct folio *), GFP_NOFS); in defrag_one_range()
1211 if (!folios) in defrag_one_range()
1216 folios[i] = defrag_prepare_one_folio(inode, cur >> PAGE_SHIFT); in defrag_one_range()
1217 if (IS_ERR(folios[i])) { in defrag_one_range()
1218 ret = PTR_ERR(folios[i]); in defrag_one_range()
1219 folios[i] = NULL; in defrag_one_range()
1222 cur = folio_end(folios[i]); in defrag_one_range()
1225 if (!folios[i]) in defrag_one_range()
1227 folio_wait_writeback(folios[i]); in defrag_one_range()
1231 ASSERT(folios[0]); in defrag_one_range()
1233 btrfs_lock_extent(&inode->io_tree, folio_pos(folios[0]), cur - 1, &cached_state); in defrag_one_range()
1248 ret = defrag_one_locked_target(inode, entry, folios, nr_pages, in defrag_one_range()
1259 btrfs_unlock_extent(&inode->io_tree, folio_pos(folios[0]), cur - 1, &cached_state); in defrag_one_range()
1262 if (!folios[i]) in defrag_one_range()
1264 folio_unlock(folios[i]); in defrag_one_range()
1265 folio_put(folios[i]); in defrag_one_range()
1267 kfree(folios); in defrag_one_range()