X-Git-Url: http://git.monstr.eu/?p=linux-2.6-microblaze.git;a=blobdiff_plain;f=mm%2Frmap.c;h=6aebd1747251212fc42e0681c216382f4fce8045;hp=2d29a57d29e8d2021588b17c306bc6f5199c7d97;hb=c605c39677b9842b0566013e0cf30bc13e90bdbc;hpb=21f577b0f48fd3a8871ca4116dad0e9c41ec42b2 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;