diff -NurpP --minimal linux-2.6.14-vs2.1.0-rc6/include/linux/vserver/limit.h linux-2.6.14-vs2.1.0-rc6.2/include/linux/vserver/limit.h --- linux-2.6.14-vs2.1.0-rc6/include/linux/vserver/limit.h 2005-11-06 19:16:41 +0100 +++ linux-2.6.14-vs2.1.0-rc6.2/include/linux/vserver/limit.h 2005-11-07 04:31:51 +0100 @@ -11,6 +11,19 @@ #ifdef __KERNEL__ + +#define VLIM_INFINITY (~0ULL) + +#if (RLIM_INFINITY == VLIM_INFINITY) +#define VX_VLIM(v) (v) +#define VX_RLIM(v) (v) +#else +#define VX_VLIM(r) (((r) == RLIM_INFINITY) ? \ + VLIM_INFINITY : (unsigned long long)(r)) +#define VX_RLIM(v) (((v) == VLIM_INFINITY) ? \ + RLIM_INFINITY : (unsigned long)(v)) +#endif + struct sysinfo; void vx_vsi_meminfo(struct sysinfo *); diff -NurpP --minimal linux-2.6.14-vs2.1.0-rc6/include/linux/vserver/limit_cmd.h linux-2.6.14-vs2.1.0-rc6.2/include/linux/vserver/limit_cmd.h --- linux-2.6.14-vs2.1.0-rc6/include/linux/vserver/limit_cmd.h 2005-10-29 03:19:03 +0200 +++ linux-2.6.14-vs2.1.0-rc6.2/include/linux/vserver/limit_cmd.h 2005-11-07 04:32:14 +0100 @@ -21,7 +21,7 @@ struct vcmd_ctx_rlimit_mask_v0 { }; #define CRLIM_UNSET (0ULL) -#define CRLIM_INFINITY (~0ULL) +#define CRLIM_INFINITY VLIM_INFINITY #define CRLIM_KEEP (~1ULL) #ifdef __KERNEL__ diff -NurpP --minimal linux-2.6.14-vs2.1.0-rc6/kernel/vserver/limit.c linux-2.6.14-vs2.1.0-rc6.2/kernel/vserver/limit.c --- linux-2.6.14-vs2.1.0-rc6/kernel/vserver/limit.c 2005-10-29 04:43:34 +0200 +++ linux-2.6.14-vs2.1.0-rc6.2/kernel/vserver/limit.c 2005-11-07 04:35:30 +0100 @@ -67,9 +67,7 @@ static inline uint64_t vc_get_rlim(struc unsigned long limit; limit = vxi->limit.rlim[id]; - if (limit == RLIM_INFINITY) - return CRLIM_INFINITY; - return limit; + return VX_VLIM(limit); } int vc_get_rlimit(uint32_t id, void __user *data) @@ -113,7 +111,7 @@ int vc_set_rlimit(uint32_t id, void __us return -ESRCH; if (vc_data.maximum != CRLIM_KEEP) - vxi->limit.rlim[vc_data.id] = vc_data.maximum; + vxi->limit.rlim[vc_data.id] = VX_RLIM(vc_data.maximum); put_vx_info(vxi); return 0; diff -NurpP --minimal linux-2.6.14-vs2.1.0-rc6/kernel/vserver/limit_proc.h linux-2.6.14-vs2.1.0-rc6.2/kernel/vserver/limit_proc.h --- linux-2.6.14-vs2.1.0-rc6/kernel/vserver/limit_proc.h 2005-11-06 19:58:39 +0100 +++ linux-2.6.14-vs2.1.0-rc6.2/kernel/vserver/limit_proc.h 2005-11-07 04:33:33 +0100 @@ -16,7 +16,7 @@ static inline void vx_limit_fixup(struct #define VX_LIMIT_ARG(r) \ ,atomic_read(&limit->rcur[r]) \ ,limit->rmax[r] \ - ,limit->rlim[r] \ + ,VX_VLIM(limit->rlim[r]) \ ,atomic_read(&limit->lhit[r]) static inline int vx_info_proc_limit(struct _vx_limit *limit, char *buffer)