Merge tag 'backport/v3.14.24-ltsi-rc1/pci-rcar-gen2-to-v3.16' into backport/v3.14...
[platform/adaptation/renesas_rcar/renesas_kernel.git] / mm / mincore.c
index da2be56..725c809 100644 (file)
@@ -70,13 +70,21 @@ static unsigned char mincore_page(struct address_space *mapping, pgoff_t pgoff)
         * any other file mapping (ie. marked !present and faulted in with
         * tmpfs's .fault). So swapped out tmpfs mappings are tested here.
         */
-       page = find_get_page(mapping, pgoff);
 #ifdef CONFIG_SWAP
-       /* shmem/tmpfs may return swap: account for swapcache page too. */
-       if (radix_tree_exceptional_entry(page)) {
-               swp_entry_t swap = radix_to_swp_entry(page);
-               page = find_get_page(swap_address_space(swap), swap.val);
-       }
+       if (shmem_mapping(mapping)) {
+               page = find_get_entry(mapping, pgoff);
+               /*
+                * shmem/tmpfs may return swap: account for swapcache
+                * page too.
+                */
+               if (radix_tree_exceptional_entry(page)) {
+                       swp_entry_t swp = radix_to_swp_entry(page);
+                       page = find_get_page(swap_address_space(swp), swp.val);
+               }
+       } else
+               page = find_get_page(mapping, pgoff);
+#else
+       page = find_get_page(mapping, pgoff);
 #endif
        if (page) {
                present = PageUptodate(page);
@@ -225,13 +233,6 @@ static long do_mincore(unsigned long addr, unsigned long pages, unsigned char *v
 
        end = min(vma->vm_end, addr + (pages << PAGE_SHIFT));
 
-       if (is_vm_hugetlb_page(vma)) {
-               mincore_hugetlb_page_range(vma, addr, end, vec);
-               return (end - addr) >> PAGE_SHIFT;
-       }
-
-       end = pmd_addr_end(addr, end);
-
        if (is_vm_hugetlb_page(vma))
                mincore_hugetlb_page_range(vma, addr, end, vec);
        else