Linux Headquarters
[ Register ]
[ About us ] [ Home Page ]

[ Kernel ] [ Documentation ] [ Links ] [ Books ]

Advertisement

Kernel v2.3.9 /mm/mmap.c

Filename:/mm/mmap.c
Lines Added:6
Lines Deleted:3
Also changed in: (Previous) 2.3.7  2.3.6  2.3.4  2.2.8  2.2.8-pre6  2.2.8-pre7 
(Following) 2.3.10  2.3.12  2.3.15  2.3.17  2.3.22  2.3.23 

Location
[  2.3.9
  [  mm
     o  mmap.c

Patch

diff -u --recursive --new-file v2.3.8/linux/mm/mmap.c linux/mm/mmap.c
--- v2.3.8/linux/mm/mmap.c   Wed Jun 16 19:26:27 1999
+++ linux/mm/mmap.c   Tue Jun 29 09:22:08 1999
@@ -62,7 +62,7 @@
    if (sysctl_overcommit_memory)
        return 1;
 
-   free = buffermem >> PAGE_SHIFT;
+   free = atomic_read(&buffermem) >> PAGE_SHIFT;
    free += atomic_read(&page_cache_size);
    free += nr_free_pages;
    free += nr_swap_pages;
@@ -313,7 +313,7 @@
       if (error)
          goto unmap_and_free_vma;
       vma->vm_file = file;
-      file->f_count++;
+      atomic_inc(&file->f_count);
    }
 
    /*
@@ -547,7 +547,7 @@
       mpnt->vm_file = area->vm_file;
       mpnt->vm_pte = area->vm_pte;
       if (mpnt->vm_file)
-         mpnt->vm_file->f_count++;
+         atomic_inc(&mpnt->vm_file->f_count);
       if (mpnt->vm_ops && mpnt->vm_ops->open)
          mpnt->vm_ops->open(mpnt);
       area->vm_end = addr;   /* Truncate area */
@@ -786,8 +786,11 @@
     */
    flags = vma->vm_flags;
    addr = vma->vm_start;
+
+   lock_kernel();      /* kswapd, ugh */
    insert_vm_struct(mm, vma);
    merge_segments(mm, vma->vm_start, vma->vm_end);
+   unlock_kernel();
    
    mm->total_vm += len >> PAGE_SHIFT;
    if (flags & VM_LOCKED) {


Comments: webmaster (at) linuxhq.com.
Advertising: banners (at) linuxhq.com.
Compilation ©1998-2008 Linux Headquarters, Inc.