X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=mm%2Frmap.c;h=b2cebf35ffe7a02196a864dca06a5ae7b2b1ff74;hb=98e2e409e76ef7781d8511f997359e9c504a95c1;hp=b9eb5c12f3fe10bc83ce0d26d3f804d7f252f517;hpb=ba31f97d43be41ca99ab72a6131d7c226306865f;p=linux-2.6-microblaze.git diff --git a/mm/rmap.c b/mm/rmap.c index b9eb5c12f3fe..b2cebf35ffe7 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -1230,11 +1230,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;