X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=mm%2Frmap.c;h=6aebd1747251212fc42e0681c216382f4fce8045;hb=dde994dd54fbf84f8fd14230de3477d552e42470;hp=2d29a57d29e8d2021588b17c306bc6f5199c7d97;hpb=6abaa83c7352b31450d7e8c173f674324c16b02b;p=linux-2.6-microblaze.git diff --git a/mm/rmap.c b/mm/rmap.c index 2d29a57d29e8..6aebd1747251 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -1231,11 +1231,13 @@ void page_add_file_rmap(struct page *page, bool compound) nr_pages); } else { if (PageTransCompound(page) && page_mapping(page)) { + struct page *head = compound_head(page); + VM_WARN_ON_ONCE(!PageLocked(page)); - SetPageDoubleMap(compound_head(page)); + SetPageDoubleMap(head); if (PageMlocked(page)) - clear_page_mlock(compound_head(page)); + clear_page_mlock(head); } if (!atomic_inc_and_test(&page->_mapcount)) goto out;