This THP prep patchset changes several page cache iteration APIs to only return head pages. - It's only possible to tag head pages in the page cache, so only return head pages, not all their subpages. - Factor a lot of common code out of the various batch lookup routines - Add mapping_seek_hole_data() - Unify find_get_entries() and pagevec_lookup_entries() - Make find_get_entries only return head pages, like find_get_entry(). These are only loosely connected, but they seem to make sense together as a series. Another ~30 MM patches to come after this batch to enable THPs for filesystems. Matthew Wilcox (Oracle) (12): mm: Make pagecache tagged lookups return only head pages mm/shmem: Use pagevec_lookup in shmem_unlock_mapping mm/filemap: Add helper for finding pages mm/filemap: Add mapping_seek_hole_data mm: Add and use find_lock_entries mm: Add an 'end' parameter to find_get_entries mm: Add an 'end' parameter to pagevec_lookup_entries mm: Remove nr_entries parameter from pagevec_lookup_entries mm: Pass pvec directly to find_get_entries mm: Remove pagevec_lookup_entries mm/truncate,shmem: Handle truncates that split THPs mm/filemap: Return only head pages from find_get_entries include/linux/pagemap.h | 5 +- include/linux/pagevec.h | 4 - mm/filemap.c | 275 +++++++++++++++++++++++++++------------- mm/internal.h | 5 + mm/shmem.c | 213 +++++++------------------------ mm/swap.c | 38 +----- mm/truncate.c | 249 ++++++++++++++---------------------- 7 files changed, 335 insertions(+), 454 deletions(-) -- 2.28.0