maple_tree: separate ma_state node from status
[linux-2.6-microblaze.git] / mm / filemap.c
index 9710f43..71f0053 100644 (file)
@@ -2173,7 +2173,7 @@ update_start:
 
        if (nr) {
                folio = fbatch->folios[nr - 1];
-               *start = folio->index + folio_nr_pages(folio);
+               *start = folio_next_index(folio);
        }
 out:
        rcu_read_unlock();
@@ -3371,7 +3371,7 @@ static bool filemap_map_pmd(struct vm_fault *vmf, struct folio *folio,
                }
        }
 
-       if (pmd_none(*vmf->pmd))
+       if (pmd_none(*vmf->pmd) && vmf->prealloc_pte)
                pmd_install(mm, vmf->pmd, &vmf->prealloc_pte);
 
        return false;
@@ -3443,7 +3443,7 @@ static vm_fault_t filemap_map_folio_range(struct vm_fault *vmf,
                 * handled in the specific fault path, and it'll prohibit the
                 * fault-around logic.
                 */
-               if (!pte_none(vmf->pte[count]))
+               if (!pte_none(ptep_get(&vmf->pte[count])))
                        goto skip;
 
                count++;