/* ..except if it's a write access */ 
do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,		pte_t *page_table, pmd_t *pmd, int write_access,		unsigned long addr){	pte_t entry;	/* 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);		if (unlikely(anon_vma_prepare(vma)))			goto no_mem;		page = alloc_zeroed_user_highpage(vma, addr);		if (!page)			goto no_mem;		spin_lock(&mm->page_table_lock);		page_table = pte_offset_map(pmd, addr);		if (!pte_none(*page_table)) {			pte_unmap(page_table);			page_cache_release(page);			spin_unlock(&mm->page_table_lock);			goto out;		}		inc_mm_counter(mm, rss);		entry = maybe_mkwrite(pte_mkdirty(mk_pte(page,							 vma->vm_page_prot)),				      vma);		lru_cache_add_active(page);		SetPageReferenced(page);		page_add_anon_rmap(page, vma, addr);	}	set_pte_at(mm, addr, page_table, entry);	pte_unmap(page_table);	/* No need to invalidate - it was non-present before */	update_mmu_cache(vma, addr, entry);	lazy_mmu_prot_update(entry);	spin_unlock(&mm->page_table_lock);out:	return VM_FAULT_MINOR;no_mem:	return VM_FAULT_OOM;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/65500d234e74fc4e8f18e1a429bc24e51e75de4a/memory.c/clean/mm/memory.c