mirror of
https://github.com/torvalds/linux
synced 2024-10-17 08:46:50 +00:00
filemap: remove find_get_pages_contig()
All callers of find_get_pages_contig() have been removed, so it is no longer needed. Link: https://lkml.kernel.org/r/20220824004023.77310-8-vishal.moola@gmail.com Signed-off-by: Vishal Moola (Oracle) <vishal.moola@gmail.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Chris Mason <clm@fb.com> Cc: David Sterba <dsterba@suse.com> Cc: David Sterba <dsterb@suse.com> Cc: Josef Bacik <josef@toxicpanda.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Ryusuke Konishi <konishi.ryusuke@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
60aac486da
commit
48658d8509
|
@ -720,8 +720,6 @@ unsigned filemap_get_folios(struct address_space *mapping, pgoff_t *start,
|
||||||
pgoff_t end, struct folio_batch *fbatch);
|
pgoff_t end, struct folio_batch *fbatch);
|
||||||
unsigned filemap_get_folios_contig(struct address_space *mapping,
|
unsigned filemap_get_folios_contig(struct address_space *mapping,
|
||||||
pgoff_t *start, pgoff_t end, struct folio_batch *fbatch);
|
pgoff_t *start, pgoff_t end, struct folio_batch *fbatch);
|
||||||
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,
|
unsigned find_get_pages_range_tag(struct address_space *mapping, pgoff_t *index,
|
||||||
pgoff_t end, xa_mark_t tag, unsigned int nr_pages,
|
pgoff_t end, xa_mark_t tag, unsigned int nr_pages,
|
||||||
struct page **pages);
|
struct page **pages);
|
||||||
|
|
60
mm/filemap.c
60
mm/filemap.c
|
@ -2269,66 +2269,6 @@ unsigned filemap_get_folios_contig(struct address_space *mapping,
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(filemap_get_folios_contig);
|
EXPORT_SYMBOL(filemap_get_folios_contig);
|
||||||
|
|
||||||
/**
|
|
||||||
* find_get_pages_contig - gang contiguous pagecache lookup
|
|
||||||
* @mapping: The address_space to search
|
|
||||||
* @index: The starting page index
|
|
||||||
* @nr_pages: The maximum number of pages
|
|
||||||
* @pages: Where the resulting pages are placed
|
|
||||||
*
|
|
||||||
* find_get_pages_contig() works exactly like find_get_pages_range(),
|
|
||||||
* except that the returned number of pages are guaranteed to be
|
|
||||||
* contiguous.
|
|
||||||
*
|
|
||||||
* Return: the number of pages which were found.
|
|
||||||
*/
|
|
||||||
unsigned find_get_pages_contig(struct address_space *mapping, pgoff_t index,
|
|
||||||
unsigned int nr_pages, struct page **pages)
|
|
||||||
{
|
|
||||||
XA_STATE(xas, &mapping->i_pages, index);
|
|
||||||
struct folio *folio;
|
|
||||||
unsigned int ret = 0;
|
|
||||||
|
|
||||||
if (unlikely(!nr_pages))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
rcu_read_lock();
|
|
||||||
for (folio = xas_load(&xas); folio; folio = xas_next(&xas)) {
|
|
||||||
if (xas_retry(&xas, folio))
|
|
||||||
continue;
|
|
||||||
/*
|
|
||||||
* If the entry has been swapped out, we can stop looking.
|
|
||||||
* No current caller is looking for DAX entries.
|
|
||||||
*/
|
|
||||||
if (xa_is_value(folio))
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (!folio_try_get_rcu(folio))
|
|
||||||
goto retry;
|
|
||||||
|
|
||||||
if (unlikely(folio != xas_reload(&xas)))
|
|
||||||
goto put_page;
|
|
||||||
|
|
||||||
again:
|
|
||||||
pages[ret] = folio_file_page(folio, xas.xa_index);
|
|
||||||
if (++ret == nr_pages)
|
|
||||||
break;
|
|
||||||
if (folio_more_pages(folio, xas.xa_index, ULONG_MAX)) {
|
|
||||||
xas.xa_index++;
|
|
||||||
folio_ref_inc(folio);
|
|
||||||
goto again;
|
|
||||||
}
|
|
||||||
continue;
|
|
||||||
put_page:
|
|
||||||
folio_put(folio);
|
|
||||||
retry:
|
|
||||||
xas_reset(&xas);
|
|
||||||
}
|
|
||||||
rcu_read_unlock();
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(find_get_pages_contig);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* find_get_pages_range_tag - Find and return head pages matching @tag.
|
* find_get_pages_range_tag - Find and return head pages matching @tag.
|
||||||
* @mapping: the address_space to search
|
* @mapping: the address_space to search
|
||||||
|
|
Loading…
Reference in a new issue