lkml.org 
[lkml]   [2022]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 10/10] filemap: Remove find_get_pages_range() and associated functions
    Date
    All callers of find_get_pages_range(), pagevec_lookup_range() and
    pagevec_lookup() have now been removed.

    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    ---
    include/linux/pagemap.h | 3 --
    include/linux/pagevec.h | 10 ------
    mm/filemap.c | 67 -----------------------------------------
    mm/swap.c | 29 ------------------
    4 files changed, 109 deletions(-)

    diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
    index 50e57b2d845f..1caccb9f99aa 100644
    --- a/include/linux/pagemap.h
    +++ b/include/linux/pagemap.h
    @@ -720,9 +720,6 @@ static inline struct page *find_subpage(struct page *head, pgoff_t index)

    unsigned filemap_get_folios(struct address_space *mapping, pgoff_t *start,
    pgoff_t end, struct folio_batch *fbatch);
    -unsigned find_get_pages_range(struct address_space *mapping, pgoff_t *start,
    - pgoff_t end, unsigned int nr_pages,
    - struct page **pages);
    unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t start,
    unsigned int nr_pages, struct page **pages);
    unsigned find_get_pages_range_tag(struct address_space *mapping, pgoff_t *index,
    diff --git a/include/linux/pagevec.h b/include/linux/pagevec.h
    index 67b1246f136b..6649154a2115 100644
    --- a/include/linux/pagevec.h
    +++ b/include/linux/pagevec.h
    @@ -27,16 +27,6 @@ struct pagevec {

    void __pagevec_release(struct pagevec *pvec);
    void __pagevec_lru_add(struct pagevec *pvec);
    -unsigned pagevec_lookup_range(struct pagevec *pvec,
    - struct address_space *mapping,
    - pgoff_t *start, pgoff_t end);
    -static inline unsigned pagevec_lookup(struct pagevec *pvec,
    - struct address_space *mapping,
    - pgoff_t *start)
    -{
    - return pagevec_lookup_range(pvec, mapping, start, (pgoff_t)-1);
    -}
    -
    unsigned pagevec_lookup_range_tag(struct pagevec *pvec,
    struct address_space *mapping, pgoff_t *index, pgoff_t end,
    xa_mark_t tag);
    diff --git a/mm/filemap.c b/mm/filemap.c
    index ea4145b7a84c..340ccb37f6b6 100644
    --- a/mm/filemap.c
    +++ b/mm/filemap.c
    @@ -2192,73 +2192,6 @@ bool folio_more_pages(struct folio *folio, pgoff_t index, pgoff_t max)
    return index < folio->index + folio_nr_pages(folio) - 1;
    }

    -/**
    - * find_get_pages_range - gang pagecache lookup
    - * @mapping: The address_space to search
    - * @start: The starting page index
    - * @end: The final page index (inclusive)
    - * @nr_pages: The maximum number of pages
    - * @pages: Where the resulting pages are placed
    - *
    - * find_get_pages_range() will search for and return a group of up to @nr_pages
    - * pages in the mapping starting at index @start and up to index @end
    - * (inclusive). The pages are placed at @pages. find_get_pages_range() takes
    - * a reference against the returned pages.
    - *
    - * The search returns a group of mapping-contiguous pages with ascending
    - * indexes. There may be holes in the indices due to not-present pages.
    - * We also update @start to index the next page for the traversal.
    - *
    - * Return: the number of pages which were found. If this number is
    - * smaller than @nr_pages, the end of specified range has been
    - * reached.
    - */
    -unsigned find_get_pages_range(struct address_space *mapping, pgoff_t *start,
    - pgoff_t end, unsigned int nr_pages,
    - struct page **pages)
    -{
    - XA_STATE(xas, &mapping->i_pages, *start);
    - struct folio *folio;
    - unsigned ret = 0;
    -
    - if (unlikely(!nr_pages))
    - return 0;
    -
    - rcu_read_lock();
    - while ((folio = find_get_entry(&xas, end, XA_PRESENT))) {
    - /* Skip over shadow, swap and DAX entries */
    - if (xa_is_value(folio))
    - continue;
    -
    -again:
    - pages[ret] = folio_file_page(folio, xas.xa_index);
    - if (++ret == nr_pages) {
    - *start = xas.xa_index + 1;
    - goto out;
    - }
    - if (folio_more_pages(folio, xas.xa_index, end)) {
    - xas.xa_index++;
    - folio_ref_inc(folio);
    - goto again;
    - }
    - }
    -
    - /*
    - * We come here when there is no page beyond @end. We take care to not
    - * overflow the index @start as it confuses some of the callers. This
    - * breaks the iteration when there is a page at index -1 but that is
    - * already broken anyway.
    - */
    - if (end == (pgoff_t)-1)
    - *start = (pgoff_t)-1;
    - else
    - *start = end + 1;
    -out:
    - rcu_read_unlock();
    -
    - return ret;
    -}
    -
    /**
    * find_get_pages_contig - gang contiguous pagecache lookup
    * @mapping: The address_space to search
    diff --git a/mm/swap.c b/mm/swap.c
    index f3922a96b2e9..f65e284247b2 100644
    --- a/mm/swap.c
    +++ b/mm/swap.c
    @@ -1086,35 +1086,6 @@ void folio_batch_remove_exceptionals(struct folio_batch *fbatch)
    fbatch->nr = j;
    }

    -/**
    - * pagevec_lookup_range - gang pagecache lookup
    - * @pvec: Where the resulting pages are placed
    - * @mapping: The address_space to search
    - * @start: The starting page index
    - * @end: The final page index
    - *
    - * pagevec_lookup_range() will search for & return a group of up to PAGEVEC_SIZE
    - * pages in the mapping starting from index @start and upto index @end
    - * (inclusive). The pages are placed in @pvec. pagevec_lookup() takes a
    - * reference against the pages in @pvec.
    - *
    - * The search returns a group of mapping-contiguous pages with ascending
    - * indexes. There may be holes in the indices due to not-present pages. We
    - * also update @start to index the next page for the traversal.
    - *
    - * pagevec_lookup_range() returns the number of pages which were found. If this
    - * number is smaller than PAGEVEC_SIZE, the end of specified range has been
    - * reached.
    - */
    -unsigned pagevec_lookup_range(struct pagevec *pvec,
    - struct address_space *mapping, pgoff_t *start, pgoff_t end)
    -{
    - pvec->nr = find_get_pages_range(mapping, start, end, PAGEVEC_SIZE,
    - pvec->pages);
    - return pagevec_count(pvec);
    -}
    -EXPORT_SYMBOL(pagevec_lookup_range);
    -
    unsigned pagevec_lookup_range_tag(struct pagevec *pvec,
    struct address_space *mapping, pgoff_t *index, pgoff_t end,
    xa_mark_t tag)
    --
    2.35.1
    \
     
     \ /
      Last update: 2022-06-05 21:39    [W:3.558 / U:0.260 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site