summaryrefslogtreecommitdiff
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 23:59:34 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 23:59:34 -0800
commitd0415686774477153ca911a612f74c2d2bb11be6 (patch)
treee5f35894e9ff6c0da29668e5560204fd49db5eb1 /kernel/fork.c
parent25aa595a676f130148eba073cdd5a8d57e9d238f (diff)
v2.5.1.3 -> v2.5.1.4
- Jens Axboe: more bio updates, fix some request list bogosity under load - Al Viro: export seq_xxx functions - Manfred Spraul: include file cleanups, pc110pad compile fix - David Woodhouse: fix JFFS2 write error handling - Dave Jones: start merging up with 2.4.x patches - Manfred Spraul: coredump fixes, FS event counter cleanups - me: fix SCSI CD-ROM sectorsize BIO breakage
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index 158e7597e72a..4c3114eef4c4 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -589,8 +589,10 @@ int do_fork(unsigned long clone_flags, unsigned long stack_start,
*p = *current;
retval = -EAGAIN;
- if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur)
- goto bad_fork_free;
+ if (atomic_read(&p->user->processes) >= p->rlim[RLIMIT_NPROC].rlim_cur) {
+ if (!capable(CAP_SYS_ADMIN) && !capable(CAP_SYS_RESOURCE))
+ goto bad_fork_free;
+ }
atomic_inc(&p->user->__count);
atomic_inc(&p->user->processes);