arm64: barriers: use barrier() instead of smp_mb() when !SMP
[firefly-linux-kernel-4.4.55.git] / mm / rmap.c
index 807c96bf0dc6d08cdc167ce432a68999b1e21692..6280da86b5d6761ed8a245c3fadb6e42015216c5 100644 (file)
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -1513,6 +1513,9 @@ static int try_to_unmap_file(struct page *page, enum ttu_flags flags)
        unsigned long max_nl_size = 0;
        unsigned int mapcount;
 
+       if (PageHuge(page))
+               pgoff = page->index << compound_order(page);
+
        mutex_lock(&mapping->i_mmap_mutex);
        vma_interval_tree_foreach(vma, &mapping->i_mmap, pgoff, pgoff) {
                unsigned long address = vma_address(page, vma);