]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
mm: remove references to page->index in huge_memory.c
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Sat, 5 Oct 2024 20:01:17 +0000 (21:01 +0100)
committerAndrew Morton <akpm@linux-foundation.org>
Fri, 1 Nov 2024 04:29:03 +0000 (21:29 -0700)
We already have folios in all these places; it's just a matter of using
them instead of the pages.

Link: https://lkml.kernel.org/r/20241005200121.3231142-7-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/huge_memory.c

index 2f24d9cbba5b0530d3efda87682cf91ddafaf5de..48cb888d2c5babd170938b450308ecfb417555b4 100644 (file)
@@ -3126,8 +3126,8 @@ static void __split_huge_page_tail(struct folio *folio, int tail,
        /* ->mapping in first and second tail page is replaced by other uses */
        VM_BUG_ON_PAGE(tail > 2 && page_tail->mapping != TAIL_MAPPING,
                        page_tail);
-       page_tail->mapping = head->mapping;
-       page_tail->index = head->index + tail;
+       new_folio->mapping = folio->mapping;
+       new_folio->index = folio->index + tail;
 
        /*
         * page->private should not be set in tail pages. Fix up and warn once
@@ -3203,11 +3203,11 @@ static void __split_huge_page(struct page *page, struct list_head *list,
        ClearPageHasHWPoisoned(head);
 
        for (i = nr - new_nr; i >= new_nr; i -= new_nr) {
+               struct folio *tail;
                __split_huge_page_tail(folio, i, lruvec, list, new_order);
+               tail = page_folio(head + i);
                /* Some pages can be beyond EOF: drop them from page cache */
-               if (head[i].index >= end) {
-                       struct folio *tail = page_folio(head + i);
-
+               if (tail->index >= end) {
                        if (shmem_mapping(folio->mapping))
                                nr_dropped++;
                        else if (folio_test_clear_dirty(tail))
@@ -3215,12 +3215,12 @@ static void __split_huge_page(struct page *page, struct list_head *list,
                                        inode_to_wb(folio->mapping->host));
                        __filemap_remove_folio(tail, NULL);
                        folio_put(tail);
-               } else if (!PageAnon(page)) {
-                       __xa_store(&folio->mapping->i_pages, head[i].index,
-                                       head + i, 0);
+               } else if (!folio_test_anon(folio)) {
+                       __xa_store(&folio->mapping->i_pages, tail->index,
+                                       tail, 0);
                } else if (swap_cache) {
                        __xa_store(&swap_cache->i_pages, offset + i,
-                                       head + i, 0);
+                                       tail, 0);
                }
        }