View | Details | Raw Unified | Return to bug 65373
Collapse All | Expand All

(-)linux-2.6.10/mm/mmap.c (+15 lines)
Lines 1360-1365 Link Here
1360
		vm_unacct_memory(grow);
1360
		vm_unacct_memory(grow);
1361
		return -ENOMEM;
1361
		return -ENOMEM;
1362
	}
1362
	}
1363
	if ((vma->vm_flags & VM_LOCKED) && !capable(CAP_IPC_LOCK) &&
1364
			((vma->vm_mm->locked_vm + grow) << PAGE_SHIFT) >
1365
			current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur) {
1366
		anon_vma_unlock(vma);
1367
		vm_unacct_memory(grow);
1368
		return -ENOMEM;
1369
	}
1363
	vma->vm_end = address;
1370
	vma->vm_end = address;
1364
	vma->vm_mm->total_vm += grow;
1371
	vma->vm_mm->total_vm += grow;
1365
	if (vma->vm_flags & VM_LOCKED)
1372
	if (vma->vm_flags & VM_LOCKED)
Lines 1422-1427 Link Here
1422
		vm_unacct_memory(grow);
1429
		vm_unacct_memory(grow);
1423
		return -ENOMEM;
1430
		return -ENOMEM;
1424
	}
1431
	}
1432
	if ((vma->vm_flags & VM_LOCKED) && !capable(CAP_IPC_LOCK) &&
1433
			((vma->vm_mm->locked_vm + grow) << PAGE_SHIFT) >
1434
			current->signal->rlim[RLIMIT_MEMLOCK].rlim_cur) {
1435
		anon_vma_unlock(vma);
1436
		vm_unacct_memory(grow);
1437
		return -ENOMEM;
1438
	}
1425
	vma->vm_start = address;
1439
	vma->vm_start = address;
1426
	vma->vm_pgoff -= grow;
1440
	vma->vm_pgoff -= grow;
1427
	vma->vm_mm->total_vm += grow;
1441
	vma->vm_mm->total_vm += grow;
Lines 1833-1838 Link Here
1833
	down_write(&current->mm->mmap_sem);
1847
	down_write(&current->mm->mmap_sem);
1834
	ret = __do_brk(addr, len);
1848
	ret = __do_brk(addr, len);
1835
	up_write(&current->mm->mmap_sem);
1849
	up_write(&current->mm->mmap_sem);
1850
	return ret;
1836
}
1851
}
1837
1852
1838
EXPORT_SYMBOL(do_brk);
1853
EXPORT_SYMBOL(do_brk);

Return to bug 65373