X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=mm%2Frmap.c;h=6aebd1747251212fc42e0681c216382f4fce8045;hb=276aeee1c5fc00df700f0782060beae126600472;hp=2d29a57d29e8d2021588b17c306bc6f5199c7d97;hpb=27151f177827d478508e756c7657273261aaf8a9;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;