mm/page_owner: copy last_migrate_reason in copy_page_owner()
authorJoonsoo Kim <iamjoonsoo.kim@lge.com>
Tue, 26 Jul 2016 22:23:46 +0000 (15:23 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 26 Jul 2016 23:19:19 +0000 (16:19 -0700)
Currently, copy_page_owner() doesn't copy all the owner information.  It
skips last_migrate_reason because copy_page_owner() is used for
migration and it will be properly set soon.  But, following patch will
use copy_page_owner() and this skip will cause the problem that
allocated page has uninitialied last_migrate_reason.  To prevent it,
this patch also copy last_migrate_reason in copy_page_owner().

Link: http://lkml.kernel.org/r/1464230275-25791-3-git-send-email-iamjoonsoo.kim@lge.com
Signed-off-by: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Alexander Potapenko <glider@google.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/page_owner.c

index fedeba88c9cb82acdbc5bcf5c6efab63279607d2..437877f5b774079a37ac23b6eb447da05bb42cef 100644 (file)
@@ -118,6 +118,7 @@ void __copy_page_owner(struct page *oldpage, struct page *newpage)
 
        new_ext->order = old_ext->order;
        new_ext->gfp_mask = old_ext->gfp_mask;
+       new_ext->last_migrate_reason = old_ext->last_migrate_reason;
        new_ext->nr_entries = old_ext->nr_entries;
 
        for (i = 0; i < ARRAY_SIZE(new_ext->trace_entries); i++)