git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
kernel
/
vserver
/
switch.c
diff --git
a/kernel/vserver/switch.c
b/kernel/vserver/switch.c
index
f13ee97
..
f72cb7e
100644
(file)
--- a/
kernel/vserver/switch.c
+++ b/
kernel/vserver/switch.c
@@
-42,6
+42,8
@@
vc_get_version(uint32_t id)
extern asmlinkage long
sys_vserver(uint32_t cmd, uint32_t id, void __user *data)
{
extern asmlinkage long
sys_vserver(uint32_t cmd, uint32_t id, void __user *data)
{
+ if (!capable(CAP_CONTEXT))
+ return -EPERM;
vxdprintk(VXD_CBIT(switch, 0),
"vc: VCMD_%02d_%d[%d], %d",
vxdprintk(VXD_CBIT(switch, 0),
"vc: VCMD_%02d_%d[%d], %d",
@@
-52,7
+54,7
@@
sys_vserver(uint32_t cmd, uint32_t id, void __user *data)
case VCMD_get_version:
return vc_get_version(id);
case VCMD_get_version:
return vc_get_version(id);
-#ifdef CONFIG_VSERVER_LEGACY
+#ifdef CONFIG_VSERVER_LEGACY
case VCMD_new_s_context:
return vc_new_s_context(id, data);
case VCMD_set_ipv4root:
case VCMD_new_s_context:
return vc_new_s_context(id, data);
case VCMD_set_ipv4root:
@@
-96,7
+98,7
@@
sys_vserver(uint32_t cmd, uint32_t id, void __user *data)
return vc_set_rlimit(id, data);
case VCMD_get_rlimit_mask:
return vc_get_rlimit_mask(id, data);
return vc_set_rlimit(id, data);
case VCMD_get_rlimit_mask:
return vc_get_rlimit_mask(id, data);
-
+
case VCMD_vx_get_vhi_name:
return vc_get_vhi_name(id, data);
case VCMD_vx_set_vhi_name:
case VCMD_vx_get_vhi_name:
return vc_get_vhi_name(id, data);
case VCMD_vx_set_vhi_name:
@@
-122,6
+124,9
@@
sys_vserver(uint32_t cmd, uint32_t id, void __user *data)
case VCMD_get_ncaps:
return vc_get_ncaps(id, data);
case VCMD_get_ncaps:
return vc_get_ncaps(id, data);
+ case VCMD_set_sched_v2:
+ return vc_set_sched_v2(id, data);
+ /* this is version 3 */
case VCMD_set_sched:
return vc_set_sched(id, data);
case VCMD_set_sched:
return vc_set_sched(id, data);
@@
-143,7
+148,10
@@
sys_vserver(uint32_t cmd, uint32_t id, void __user *data)
case VCMD_ctx_kill:
return vc_ctx_kill(id, data);
case VCMD_ctx_kill:
return vc_ctx_kill(id, data);
-#ifdef CONFIG_VSERVER_LEGACY
+ case VCMD_wait_exit:
+ return vc_wait_exit(id, data);
+
+#ifdef CONFIG_VSERVER_LEGACY
case VCMD_create_context:
return vc_ctx_create(id, data);
#endif
case VCMD_create_context:
return vc_ctx_create(id, data);
#endif
@@
-157,7
+165,7
@@
sys_vserver(uint32_t cmd, uint32_t id, void __user *data)
return vc_enter_namespace(id, data);
case VCMD_ctx_create:
return vc_enter_namespace(id, data);
case VCMD_ctx_create:
-#ifdef CONFIG_VSERVER_LEGACY
+#ifdef CONFIG_VSERVER_LEGACY
if (id == 1) {
current->xid = 1;
return 1;
if (id == 1) {
current->xid = 1;
return 1;