diff options
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 90dace52715e..1cd7d581b3b2 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -423,7 +423,12 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) | |||
423 | mapping->i_mmap_writable++; | 423 | mapping->i_mmap_writable++; |
424 | flush_dcache_mmap_lock(mapping); | 424 | flush_dcache_mmap_lock(mapping); |
425 | /* insert tmp into the share list, just after mpnt */ | 425 | /* insert tmp into the share list, just after mpnt */ |
426 | vma_interval_tree_add(tmp, mpnt, mapping); | 426 | if (unlikely(tmp->vm_flags & VM_NONLINEAR)) |
427 | vma_nonlinear_insert(tmp, | ||
428 | &mapping->i_mmap_nonlinear); | ||
429 | else | ||
430 | vma_interval_tree_insert_after(tmp, mpnt, | ||
431 | &mapping->i_mmap); | ||
427 | flush_dcache_mmap_unlock(mapping); | 432 | flush_dcache_mmap_unlock(mapping); |
428 | mutex_unlock(&mapping->i_mmap_mutex); | 433 | mutex_unlock(&mapping->i_mmap_mutex); |
429 | } | 434 | } |