mm: make mapping_get_entry available outside of filemap.c

mapping_get_entry is useful for page cache API users that need to know
about xa_value internals.  Rename it and make it available in pagemap.h.

Link: https://lkml.kernel.org/r/20230307143410.28031-3-hch@lst.de
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Andreas Gruenbacher <agruenba@redhat.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
Christoph Hellwig 2023-03-07 15:34:05 +01:00 committed by Andrew Morton
parent 1fb130b226
commit 263e721e3b
2 changed files with 4 additions and 3 deletions

View File

@ -507,6 +507,7 @@ pgoff_t page_cache_prev_miss(struct address_space *mapping,
#define FGP_ENTRY 0x00000080 #define FGP_ENTRY 0x00000080
#define FGP_STABLE 0x00000100 #define FGP_STABLE 0x00000100
void *filemap_get_entry(struct address_space *mapping, pgoff_t index);
struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index, struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index,
int fgp_flags, gfp_t gfp); int fgp_flags, gfp_t gfp);
struct page *pagecache_get_page(struct address_space *mapping, pgoff_t index, struct page *pagecache_get_page(struct address_space *mapping, pgoff_t index,

View File

@ -1836,7 +1836,7 @@ EXPORT_SYMBOL(page_cache_prev_miss);
*/ */
/* /*
* mapping_get_entry - Get a page cache entry. * filemap_get_entry - Get a page cache entry.
* @mapping: the address_space to search * @mapping: the address_space to search
* @index: The page cache index. * @index: The page cache index.
* *
@ -1847,7 +1847,7 @@ EXPORT_SYMBOL(page_cache_prev_miss);
* *
* Return: The folio, swap or shadow entry, %NULL if nothing is found. * Return: The folio, swap or shadow entry, %NULL if nothing is found.
*/ */
static void *mapping_get_entry(struct address_space *mapping, pgoff_t index) void *filemap_get_entry(struct address_space *mapping, pgoff_t index)
{ {
XA_STATE(xas, &mapping->i_pages, index); XA_STATE(xas, &mapping->i_pages, index);
struct folio *folio; struct folio *folio;
@ -1917,7 +1917,7 @@ struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index,
struct folio *folio; struct folio *folio;
repeat: repeat:
folio = mapping_get_entry(mapping, index); folio = filemap_get_entry(mapping, index);
if (xa_is_value(folio)) { if (xa_is_value(folio)) {
if (fgp_flags & FGP_ENTRY) if (fgp_flags & FGP_ENTRY)
return folio; return folio;