patch-2_6_7-vs1_9_1_12
[linux-2.6.git] / arch / ia64 / mm / fault.c
index 20d11f4..8e63f14 100644 (file)
@@ -34,9 +34,12 @@ expand_backing_store (struct vm_area_struct *vma, unsigned long address)
 
        grow = PAGE_SIZE >> PAGE_SHIFT;
        if (address - vma->vm_start > current->rlim[RLIMIT_STACK].rlim_cur
-           || (((vma->vm_mm->total_vm + grow) << PAGE_SHIFT) > current->rlim[RLIMIT_AS].rlim_cur))
+           || (((vma->vm_mm->total_vm + grow) << PAGE_SHIFT) >
+               current->rlim[RLIMIT_AS].rlim_cur))
                return -ENOMEM;
-       if (!vx_vmpages_avail(vma->vm_mm, grow)
+       if (!vx_vmpages_avail(vma->vm_mm, grow) ||
+               ((vma->vm_flags & VM_LOCKED) &&
+               !vx_vmlocked_avail(vma->vm_mm, grow)))
                return -ENOMEM;
        vma->vm_end += PAGE_SIZE;
        // vma->vm_mm->total_vm += grow;