X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=kernel%2Fvserver%2Flimit.c;h=99590bbc01d03cf925db125cc496c4bd5ed4148c;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=5bd2fdcb917d78dedf5f550ef12f8fd6e806d69c;hpb=b76fcd5f0c655b6e3e9bf534594357025421c66a;p=linux-2.6.git diff --git a/kernel/vserver/limit.c b/kernel/vserver/limit.c index 5bd2fdcb9..99590bbc0 100644 --- a/kernel/vserver/limit.c +++ b/kernel/vserver/limit.c @@ -13,12 +13,27 @@ #include #include #include -#include +#include +#include +#include #include #include +const char *vlimit_name[NUM_LIMITS] = { + [RLIMIT_CPU] = "CPU", + [RLIMIT_RSS] = "RSS", + [RLIMIT_NPROC] = "NPROC", + [RLIMIT_NOFILE] = "NOFILE", + [RLIMIT_MEMLOCK] = "VML", + [RLIMIT_AS] = "VM", + [RLIMIT_LOCKS] = "LOCKS", + [RLIMIT_MSGQUEUE] = "MSGQ", + [VLIMIT_NSOCK] = "NSOCK", +}; + + static int is_valid_rlimit(int id) { int valid = 0; @@ -55,7 +70,7 @@ int vc_get_rlimit(uint32_t id, void __user *data) if (!is_valid_rlimit(vc_data.id)) return -ENOTSUPP; - vxi = find_vx_info(id); + vxi = locate_vx_info(id); if (!vxi) return -ESRCH; @@ -81,7 +96,7 @@ int vc_set_rlimit(uint32_t id, void __user *data) if (!is_valid_rlimit(vc_data.id)) return -ENOTSUPP; - vxi = find_vx_info(id); + vxi = locate_vx_info(id); if (!vxi) return -ESRCH; @@ -124,7 +139,7 @@ void vx_vsi_meminfo(struct sysinfo *val) v = vxi->limit.rlim[RLIMIT_RSS]; if (v != RLIM_INFINITY) val->totalram = min(val->totalram, v); - v = atomic_read(&vxi->limit.res[RLIMIT_RSS]); + v = atomic_read(&vxi->limit.rcur[RLIMIT_RSS]); val->freeram = (v < val->totalram) ? val->totalram - v : 0; val->bufferram = 0; val->totalhigh = 0; @@ -142,7 +157,7 @@ void vx_vsi_swapinfo(struct sysinfo *val) if (w != RLIM_INFINITY) val->totalswap = min(val->totalswap, w - ((v != RLIM_INFINITY) ? v : 0)); - w = atomic_read(&vxi->limit.res[RLIMIT_AS]); + w = atomic_read(&vxi->limit.rcur[RLIMIT_AS]); val->freeswap = (w < val->totalswap) ? val->totalswap - w : 0; return; }