Looks good to me; I really like the addition of the "end" parameter to find_get_entries() and the conversion of pagevec_lookup_entries(). For the series: Reviewed-by: William Kucharski <william.kucharski@xxxxxxxxxx> > On Sep 14, 2020, at 7:00 AM, Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> wrote: > > The critical patch to review here is patch 11, "Handle truncates that > split THPs". This code is shared with shmem, and while xfstests passes > (both with the tmpfs filesystem and with THPs enabled for XFS), it is > terribly subtle. > > I posted a similar patch series a few weeks ago [1], but this goes a few > steps further than that one did. In addition to the unification of > find_get_entries() and pagevec_lookup_entries(), this patch series > includes: > > - Only return the head pages from tagged lookups > - Factor a lot of common code out of the various batch lookup routines > - Add mapping_seek_hole_data() > - Only return head pages from find_get_entries > > I also have a patch to iomap to use mapping_seek_hole_data(), but I'm > not including that as part of this batch of patches -- I'll send it > through the iomap tree once mapping_seek_hole_data() lands upstream. > > [1] https://lore.kernel.org/linux-mm/20200819184850.24779-1-willy@xxxxxxxxxxxxx/ > > 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 | 267 +++++++++++++++++++++++++++------------- > mm/internal.h | 5 + > mm/shmem.c | 214 +++++++------------------------- > mm/swap.c | 38 +----- > mm/truncate.c | 249 ++++++++++++++----------------------- > 7 files changed, 329 insertions(+), 453 deletions(-) > > -- > 2.28.0 >