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:
parent
1fb130b226
commit
263e721e3b
@ -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,
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user