| From: "Matthew Wilcox (Oracle)" <willy@infradead.org> |
| Subject: mm: add split_folio() |
| Date: Fri, 2 Sep 2022 20:46:00 +0100 |
| |
| This wrapper removes a need to use split_huge_page(&folio->page). Convert |
| two callers. |
| |
| Link: https://lkml.kernel.org/r/20220902194653.1739778-5-willy@infradead.org |
| Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| include/linux/huge_mm.h | 5 +++++ |
| mm/shmem.c | 2 +- |
| mm/truncate.c | 2 +- |
| 3 files changed, 7 insertions(+), 2 deletions(-) |
| |
| --- a/include/linux/huge_mm.h~mm-add-split_folio |
| +++ a/include/linux/huge_mm.h |
| @@ -444,6 +444,11 @@ static inline int split_folio_to_list(st |
| return split_huge_page_to_list(&folio->page, list); |
| } |
| |
| +static inline int split_folio(struct folio *folio) |
| +{ |
| + return split_folio_to_list(folio, NULL); |
| +} |
| + |
| /* |
| * archs that select ARCH_WANTS_THP_SWAP but don't support THP_SWP due to |
| * limitations in the implementation like arm64 MTE can override this to |
| --- a/mm/shmem.c~mm-add-split_folio |
| +++ a/mm/shmem.c |
| @@ -629,7 +629,7 @@ next: |
| goto move_back; |
| } |
| |
| - ret = split_huge_page(&folio->page); |
| + ret = split_folio(folio); |
| folio_unlock(folio); |
| folio_put(folio); |
| |
| --- a/mm/truncate.c~mm-add-split_folio |
| +++ a/mm/truncate.c |
| @@ -240,7 +240,7 @@ bool truncate_inode_partial_folio(struct |
| folio_invalidate(folio, offset, length); |
| if (!folio_test_large(folio)) |
| return true; |
| - if (split_huge_page(&folio->page) == 0) |
| + if (split_folio(folio) == 0) |
| return true; |
| if (folio_test_dirty(folio)) |
| return false; |
| _ |