X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=mm%2Ffremap.c;fp=mm%2Ffremap.c;h=be09f924c34c2de7ed6974a5c66388df552d1b6d;hb=f7f1b0f1e2fbadeab12d24236000e778aa9b1ead;hp=08f03946d2cc29106a235c7aeb824b3cd02a1352;hpb=e3f6fb6212a7102bdb56ba38fa1e98fe72950475;p=linux-2.6.git diff --git a/mm/fremap.c b/mm/fremap.c index 08f03946d..be09f924c 100644 --- a/mm/fremap.c +++ b/mm/fremap.c @@ -31,7 +31,7 @@ static inline void zap_pte(struct mm_struct *mm, struct vm_area_struct *vma, if (pte_present(pte)) { unsigned long pfn = pte_pfn(pte); - flush_cache_page(vma, addr); + flush_cache_page(vma, addr, pfn); pte = ptep_clear_flush(vma, addr, ptep); if (pfn_valid(pfn)) { struct page *page = pfn_to_page(pfn); @@ -40,13 +40,13 @@ static inline void zap_pte(struct mm_struct *mm, struct vm_area_struct *vma, set_page_dirty(page); page_remove_rmap(page); page_cache_release(page); - vx_rsspages_dec(mm); + dec_mm_counter(mm, rss); } } } else { if (!pte_file(pte)) free_swap_and_cache(pte_to_swp_entry(pte)); - pte_clear(ptep); + pte_clear(mm, addr, ptep); } } @@ -96,9 +96,9 @@ int install_page(struct mm_struct *mm, struct vm_area_struct *vma, zap_pte(mm, vma, addr, pte); - vx_rsspages_inc(mm); + inc_mm_counter(mm,rss); flush_icache_page(vma, page); - set_pte(pte, mk_pte(page, prot)); + set_pte_at(mm, addr, pte, mk_pte(page, prot)); page_add_file_rmap(page); pte_val = *pte; pte_unmap(pte); @@ -143,7 +143,7 @@ int install_file_pte(struct mm_struct *mm, struct vm_area_struct *vma, zap_pte(mm, vma, addr, pte); - set_pte(pte, pgoff_to_pte(pgoff)); + set_pte_at(mm, addr, pte, pgoff_to_pte(pgoff)); pte_val = *pte; pte_unmap(pte); update_mmu_cache(vma, addr, pte_val);