mm: use page->deferred_list
authorMatthew Wilcox <mawilcox@microsoft.com>
Fri, 8 Jun 2018 00:08:42 +0000 (17:08 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 8 Jun 2018 00:34:37 +0000 (17:34 -0700)
Now that we can represent the location of 'deferred_list' in C instead of
comments, make use of that ability.

Link: http://lkml.kernel.org/r/20180518194519.3820-9-willy@infradead.org
Signed-off-by: Matthew Wilcox <mawilcox@microsoft.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Cc: Christoph Lameter <cl@linux.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Jérôme Glisse <jglisse@redhat.com>
Cc: Lai Jiangshan <jiangshanlai@gmail.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/huge_memory.c
mm/page_alloc.c

index ac5591d8622c7848a4dc426366d49d7dc8cea211..ba8fdc0b6e7f712104e076244dc6def9ab2aa097 100644 (file)
@@ -483,11 +483,8 @@ pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma)
 
 static inline struct list_head *page_deferred_list(struct page *page)
 {
-       /*
-        * ->lru in the tail pages is occupied by compound_head.
-        * Let's use ->mapping + ->index in the second tail page as list_head.
-        */
-       return (struct list_head *)&page[2].mapping;
+       /* ->lru in the tail pages is occupied by compound_head. */
+       return &page[2].deferred_list;
 }
 
 void prep_transhuge_page(struct page *page)
index 5afdf495c37411dd0192384a119fb79895f768f0..628fd3e247313ea61530d326f99969c527dd7aed 100644 (file)
@@ -952,7 +952,7 @@ static int free_tail_pages_check(struct page *head_page, struct page *page)
        case 2:
                /*
                 * the second tail page: ->mapping is
-                * page_deferred_list().next -- ignore value.
+                * deferred_list.next -- ignore value.
                 */
                break;
        default: