X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=kernel%2Fvserver%2Flimit.c;h=0527afc672b4c90d6d27f6e4b733d20855c622cc;hb=6a77f38946aaee1cd85eeec6cf4229b204c15071;hp=4af1ee567d20ef5a6fd4cc5450fe6aa058ec7bf2;hpb=87fc8d1bb10cd459024a742c6a10961fefcef18f;p=linux-2.6.git diff --git a/kernel/vserver/limit.c b/kernel/vserver/limit.c index 4af1ee567..0527afc67 100644 --- a/kernel/vserver/limit.c +++ b/kernel/vserver/limit.c @@ -3,7 +3,7 @@ * * Virtual Server: Context Limits * - * Copyright (C) 2004 Herbert Pötzl + * Copyright (C) 2004-2005 Herbert Pötzl * * V0.01 broken out from vcontext V0.05 * @@ -11,12 +11,11 @@ #include #include -#include -#include -#include -#include #include #include +#include +#include +#include #include #include @@ -26,12 +25,17 @@ const char *vlimit_name[NUM_LIMITS] = { [RLIMIT_CPU] = "CPU", [RLIMIT_RSS] = "RSS", [RLIMIT_NPROC] = "NPROC", - [RLIMIT_NOFILE] = "NOFILE", + [RLIMIT_NOFILE] = "NOFILE", [RLIMIT_MEMLOCK] = "VML", [RLIMIT_AS] = "VM", [RLIMIT_LOCKS] = "LOCKS", + [RLIMIT_SIGPENDING] = "SIGP", [RLIMIT_MSGQUEUE] = "MSGQ", + [VLIMIT_NSOCK] = "NSOCK", + [VLIMIT_OPENFD] = "OPENFD", + [VLIMIT_ANON] = "ANON", + [VLIMIT_SHMEM] = "SHMEM", }; EXPORT_SYMBOL_GPL(vlimit_name); @@ -42,11 +46,16 @@ static int is_valid_rlimit(int id) int valid = 0; switch (id) { - case RLIMIT_NPROC: - case RLIMIT_AS: case RLIMIT_RSS: - case RLIMIT_MEMLOCK: + case RLIMIT_NPROC: case RLIMIT_NOFILE: + case RLIMIT_MEMLOCK: + case RLIMIT_AS: + + case VLIMIT_NSOCK: + case VLIMIT_OPENFD: + case VLIMIT_ANON: + case VLIMIT_SHMEM: valid = 1; break; } @@ -118,11 +127,14 @@ int vc_get_rlimit_mask(uint32_t id, void __user *data) , /* softlimit */ 0 , /* maximum */ + (1 << RLIMIT_RSS) | (1 << RLIMIT_NPROC) | (1 << RLIMIT_NOFILE) | (1 << RLIMIT_MEMLOCK) | + (1 << RLIMIT_LOCKS) | (1 << RLIMIT_AS) | - (1 << RLIMIT_RSS) + (1 << VLIMIT_ANON) | + 0 }; if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SYS_RESOURCE))