filemap: remove find_get_pages_range_tag()
authorVishal Moola (Oracle) <vishal.moola@gmail.com>
Wed, 4 Jan 2023 21:14:48 +0000 (13:14 -0800)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 3 Feb 2023 06:33:18 +0000 (22:33 -0800)
All callers to find_get_pages_range_tag(), find_get_pages_tag(),
pagevec_lookup_range_tag(), and pagevec_lookup_tag() have been removed.

Link: https://lkml.kernel.org/r/20230104211448.4804-24-vishal.moola@gmail.com
Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
include/linux/pagemap.h
include/linux/pagevec.h
mm/filemap.c
mm/swap.c

index bb3c1d5..9f10816 100644 (file)
@@ -741,16 +741,6 @@ unsigned filemap_get_folios_contig(struct address_space *mapping,
                pgoff_t *start, pgoff_t end, struct folio_batch *fbatch);
 unsigned filemap_get_folios_tag(struct address_space *mapping, pgoff_t *start,
                pgoff_t end, xa_mark_t tag, struct folio_batch *fbatch);
-unsigned find_get_pages_range_tag(struct address_space *mapping, pgoff_t *index,
-                       pgoff_t end, xa_mark_t tag, unsigned int nr_pages,
-                       struct page **pages);
-static inline unsigned find_get_pages_tag(struct address_space *mapping,
-                       pgoff_t *index, xa_mark_t tag, unsigned int nr_pages,
-                       struct page **pages)
-{
-       return find_get_pages_range_tag(mapping, index, (pgoff_t)-1, tag,
-                                       nr_pages, pages);
-}
 
 struct page *grab_cache_page_write_begin(struct address_space *mapping,
                        pgoff_t index);
index 2a6f61a..f582f72 100644 (file)
@@ -26,14 +26,6 @@ struct pagevec {
 };
 
 void __pagevec_release(struct pagevec *pvec);
-unsigned pagevec_lookup_range_tag(struct pagevec *pvec,
-               struct address_space *mapping, pgoff_t *index, pgoff_t end,
-               xa_mark_t tag);
-static inline unsigned pagevec_lookup_tag(struct pagevec *pvec,
-               struct address_space *mapping, pgoff_t *index, xa_mark_t tag)
-{
-       return pagevec_lookup_range_tag(pvec, mapping, index, (pgoff_t)-1, tag);
-}
 
 static inline void pagevec_init(struct pagevec *pvec)
 {
index 85adbcf..31bf18e 100644 (file)
@@ -2337,66 +2337,6 @@ out:
 }
 EXPORT_SYMBOL(filemap_get_folios_tag);
 
-/**
- * find_get_pages_range_tag - Find and return head pages matching @tag.
- * @mapping:   the address_space to search
- * @index:     the starting page index
- * @end:       The final page index (inclusive)
- * @tag:       the tag index
- * @nr_pages:  the maximum number of pages
- * @pages:     where the resulting pages are placed
- *
- * Like find_get_pages_range(), except we only return head pages which are
- * tagged with @tag.  @index is updated to the index immediately after the
- * last page we return, ready for the next iteration.
- *
- * Return: the number of pages which were found.
- */
-unsigned find_get_pages_range_tag(struct address_space *mapping, pgoff_t *index,
-                       pgoff_t end, xa_mark_t tag, unsigned int nr_pages,
-                       struct page **pages)
-{
-       XA_STATE(xas, &mapping->i_pages, *index);
-       struct folio *folio;
-       unsigned ret = 0;
-
-       if (unlikely(!nr_pages))
-               return 0;
-
-       rcu_read_lock();
-       while ((folio = find_get_entry(&xas, end, tag))) {
-               /*
-                * Shadow entries should never be tagged, but this iteration
-                * is lockless so there is a window for page reclaim to evict
-                * a page we saw tagged.  Skip over it.
-                */
-               if (xa_is_value(folio))
-                       continue;
-
-               pages[ret] = &folio->page;
-               if (++ret == nr_pages) {
-                       *index = folio->index + folio_nr_pages(folio);
-                       goto out;
-               }
-       }
-
-       /*
-        * We come here when we got to @end. We take care to not overflow the
-        * index @index 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)
-               *index = (pgoff_t)-1;
-       else
-               *index = end + 1;
-out:
-       rcu_read_unlock();
-
-       return ret;
-}
-EXPORT_SYMBOL(find_get_pages_range_tag);
-
 /*
  * CD/DVDs are error prone. When a medium error occurs, the driver may fail
  * a _large_ part of the i/o request. Imagine the worst scenario:
index 42d67f9..5e4f927 100644 (file)
--- a/mm/swap.c
+++ b/mm/swap.c
@@ -1115,16 +1115,6 @@ void folio_batch_remove_exceptionals(struct folio_batch *fbatch)
        fbatch->nr = j;
 }
 
-unsigned pagevec_lookup_range_tag(struct pagevec *pvec,
-               struct address_space *mapping, pgoff_t *index, pgoff_t end,
-               xa_mark_t tag)
-{
-       pvec->nr = find_get_pages_range_tag(mapping, index, end, tag,
-                                       PAGEVEC_SIZE, pvec->pages);
-       return pagevec_count(pvec);
-}
-EXPORT_SYMBOL(pagevec_lookup_range_tag);
-
 /*
  * Perform any setup for the swap system
  */