diff options
author | Jeremy Allison <jra@samba.org> | 2005-06-22 20:35:06 -0400 |
---|---|---|
committer | Steve French <sfrench@hera.kernel.org> | 2005-06-22 20:35:06 -0400 |
commit | 1bdf7a78c2b21fb94dfe7994dbe89310b18479d2 (patch) | |
tree | 7741cfd476f9c622a10c198da421fdb3e38708b9 /kernel/fork.c | |
parent | ac67055ef2378ea95c34b593ddf9d0a0737a240a (diff) | |
parent | a4936044001694f033fe4ea94d6034d51a6b465c (diff) |
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index f42a17f88699..a28d11e10877 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -194,6 +194,7 @@ static inline int dup_mmap(struct mm_struct * mm, struct mm_struct * oldmm) | |||
194 | mm->mmap = NULL; | 194 | mm->mmap = NULL; |
195 | mm->mmap_cache = NULL; | 195 | mm->mmap_cache = NULL; |
196 | mm->free_area_cache = oldmm->mmap_base; | 196 | mm->free_area_cache = oldmm->mmap_base; |
197 | mm->cached_hole_size = ~0UL; | ||
197 | mm->map_count = 0; | 198 | mm->map_count = 0; |
198 | set_mm_counter(mm, rss, 0); | 199 | set_mm_counter(mm, rss, 0); |
199 | set_mm_counter(mm, anon_rss, 0); | 200 | set_mm_counter(mm, anon_rss, 0); |
@@ -249,8 +250,9 @@ static inline int dup_mmap(struct mm_struct * mm, struct mm_struct * oldmm) | |||
249 | 250 | ||
250 | /* | 251 | /* |
251 | * Link in the new vma and copy the page table entries: | 252 | * Link in the new vma and copy the page table entries: |
252 | * link in first so that swapoff can see swap entries, | 253 | * link in first so that swapoff can see swap entries. |
253 | * and try_to_unmap_one's find_vma find the new vma. | 254 | * Note that, exceptionally, here the vma is inserted |
255 | * without holding mm->mmap_sem. | ||
254 | */ | 256 | */ |
255 | spin_lock(&mm->page_table_lock); | 257 | spin_lock(&mm->page_table_lock); |
256 | *pprev = tmp; | 258 | *pprev = tmp; |
@@ -322,6 +324,7 @@ static struct mm_struct * mm_init(struct mm_struct * mm) | |||
322 | mm->ioctx_list = NULL; | 324 | mm->ioctx_list = NULL; |
323 | mm->default_kioctx = (struct kioctx)INIT_KIOCTX(mm->default_kioctx, *mm); | 325 | mm->default_kioctx = (struct kioctx)INIT_KIOCTX(mm->default_kioctx, *mm); |
324 | mm->free_area_cache = TASK_UNMAPPED_BASE; | 326 | mm->free_area_cache = TASK_UNMAPPED_BASE; |
327 | mm->cached_hole_size = ~0UL; | ||
325 | 328 | ||
326 | if (likely(!mm_alloc_pgd(mm))) { | 329 | if (likely(!mm_alloc_pgd(mm))) { |
327 | mm->def_flags = 0; | 330 | mm->def_flags = 0; |