| From: Christoph Hellwig <hch@lst.de> |
| Subject: mm: remove FGP_ENTRY |
| Date: Tue, 7 Mar 2023 15:34:09 +0100 |
| |
| FGP_ENTRY is unused now, so remove it. |
| |
| Link: https://lkml.kernel.org/r/20230307143410.28031-7-hch@lst.de |
| Signed-off-by: Christoph Hellwig <hch@lst.de> |
| Cc: Andreas Gruenbacher <agruenba@redhat.com> |
| Cc: Hugh Dickins <hughd@google.com> |
| Cc: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Cc: Ryusuke Konishi <konishi.ryusuke@gmail.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| include/linux/pagemap.h | 3 +-- |
| mm/filemap.c | 7 +------ |
| mm/folio-compat.c | 4 ++-- |
| 3 files changed, 4 insertions(+), 10 deletions(-) |
| |
| --- a/include/linux/pagemap.h~mm-remove-fgp_entry |
| +++ a/include/linux/pagemap.h |
| @@ -504,8 +504,7 @@ pgoff_t page_cache_prev_miss(struct addr |
| #define FGP_NOFS 0x00000010 |
| #define FGP_NOWAIT 0x00000020 |
| #define FGP_FOR_MMAP 0x00000040 |
| -#define FGP_ENTRY 0x00000080 |
| -#define FGP_STABLE 0x00000100 |
| +#define FGP_STABLE 0x00000080 |
| |
| void *filemap_get_entry(struct address_space *mapping, pgoff_t index); |
| struct folio *__filemap_get_folio(struct address_space *mapping, pgoff_t index, |
| --- a/mm/filemap.c~mm-remove-fgp_entry |
| +++ a/mm/filemap.c |
| @@ -1891,8 +1891,6 @@ out: |
| * |
| * * %FGP_ACCESSED - The folio will be marked accessed. |
| * * %FGP_LOCK - The folio is returned locked. |
| - * * %FGP_ENTRY - If there is a shadow / swap / DAX entry, return it |
| - * instead of allocating a new folio to replace it. |
| * * %FGP_CREAT - If no page is present then a new page is allocated using |
| * @gfp and added to the page cache and the VM's LRU list. |
| * The page is returned locked and with an increased refcount. |
| @@ -1918,11 +1916,8 @@ struct folio *__filemap_get_folio(struct |
| |
| repeat: |
| folio = filemap_get_entry(mapping, index); |
| - if (xa_is_value(folio)) { |
| - if (fgp_flags & FGP_ENTRY) |
| - return folio; |
| + if (xa_is_value(folio)) |
| folio = NULL; |
| - } |
| if (!folio) |
| goto no_page; |
| |
| --- a/mm/folio-compat.c~mm-remove-fgp_entry |
| +++ a/mm/folio-compat.c |
| @@ -97,8 +97,8 @@ struct page *pagecache_get_page(struct a |
| struct folio *folio; |
| |
| folio = __filemap_get_folio(mapping, index, fgp_flags, gfp); |
| - if (!folio || xa_is_value(folio)) |
| - return &folio->page; |
| + if (!folio) |
| + return NULL; |
| return folio_file_page(folio, index); |
| } |
| EXPORT_SYMBOL(pagecache_get_page); |
| _ |