diff options
-rw-r--r-- | mm/memory.c | 7 | ||||
-rw-r--r-- | mm/swapfile.c | 7 |
2 files changed, 7 insertions, 7 deletions
diff --git a/mm/memory.c b/mm/memory.c index fd5d4c6dc76..13667681cd1 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1768,13 +1768,14 @@ do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr) { pte_t entry; - struct page * page = ZERO_PAGE(addr); - /* Read-only mapping of ZERO_PAGE. */ - entry = pte_wrprotect(mk_pte(ZERO_PAGE(addr), vma->vm_page_prot)); + /* Mapping of ZERO_PAGE - vm_page_prot is readonly */ + entry = mk_pte(ZERO_PAGE(addr), vma->vm_page_prot); /* ..except if it's a write access */ if (write_access) { + struct page *page; + /* Allocate our own private page. */ pte_unmap(page_table); spin_unlock(&mm->page_table_lock); diff --git a/mm/swapfile.c b/mm/swapfile.c index 1dcaeda039f..05c85129124 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -398,10 +398,9 @@ void free_swap_and_cache(swp_entry_t entry) } /* - * Always set the resulting pte to be nowrite (the same as COW pages - * after one process has exited). We don't know just how many PTEs will - * share this swap entry, so be cautious and let do_wp_page work out - * what to do if a write is requested later. + * No need to decide whether this PTE shares the swap entry with others, + * just let do_wp_page work it out if a write is requested later - to + * force COW, vm_page_prot omits write permission from any private vma. * * vma->vm_mm->page_table_lock is held. */ |