mirror of
				git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
				synced 2025-10-31 16:54:21 +00:00 
			
		
		
		
	rmap: fix walk during fork
The below bug in fork led to the rmap walk finding the parent huge-pmd twice instead of just once, because the anon_vma_chain objects of the child vma still point to the vma->vm_mm of the parent. The patch fixes it by making the rmap walk accurate during fork. It's not a big deal normally but it worth being accurate considering the cost is the same. Signed-off-by: Andrea Arcangeli <aarcange@redhat.com> Acked-by: Johannes Weiner <jweiner@redhat.com> Acked-by: Rik van Riel <riel@redhat.com> Acked-by: Hugh Dickins <hughd@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									df08cdc7ef
								
							
						
					
					
						commit
						a247c3a97a
					
				
					 1 changed files with 1 additions and 1 deletions
				
			
		|  | @ -356,10 +356,10 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | |||
| 		if (IS_ERR(pol)) | ||||
| 			goto fail_nomem_policy; | ||||
| 		vma_set_policy(tmp, pol); | ||||
| 		tmp->vm_mm = mm; | ||||
| 		if (anon_vma_fork(tmp, mpnt)) | ||||
| 			goto fail_nomem_anon_vma_fork; | ||||
| 		tmp->vm_flags &= ~VM_LOCKED; | ||||
| 		tmp->vm_mm = mm; | ||||
| 		tmp->vm_next = tmp->vm_prev = NULL; | ||||
| 		file = tmp->vm_file; | ||||
| 		if (file) { | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 Andrea Arcangeli
						Andrea Arcangeli