mm: add split_folio()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Fri, 2 Sep 2022 19:46:00 +0000 (20:46 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 3 Oct 2022 21:02:45 +0000 (14:02 -0700)
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
mm/shmem.c
mm/truncate.c

index 38265f9f782e9aede7b2b85c944c02fafad53b88..a1341fdcf666d04fa05a1c39dc09294dd4f7c906 100644 (file)
@@ -444,6 +444,11 @@ static inline int split_folio_to_list(struct folio *folio,
        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
index 42e5888bf84d8638dc19ce15ef0e81ed8291a910..674bde8b308502b1035c43db7b7eb18dafc7d617 100644 (file)
@@ -629,7 +629,7 @@ next:
                        goto move_back;
                }
 
-               ret = split_huge_page(&folio->page);
+               ret = split_folio(folio);
                folio_unlock(folio);
                folio_put(folio);
 
index 0b0708bf935f3e9b80a8042157c38b9219745401..c0be77e5c0083c6b993dd39247dd203e0ff627da 100644 (file)
@@ -240,7 +240,7 @@ bool truncate_inode_partial_folio(struct folio *folio, loff_t start, loff_t end)
                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;