diff -NurpP linux-2.6.14.2-vs2.1.0-rc7.1/include/linux/vserver/namespace_cmd.h linux-2.6.14.2-vs2.1.0-rc7.2/include/linux/vserver/namespace_cmd.h --- linux-2.6.14.2-vs2.1.0-rc7.1/include/linux/vserver/namespace_cmd.h 2005-10-29 03:19:03 +0200 +++ linux-2.6.14.2-vs2.1.0-rc7.2/include/linux/vserver/namespace_cmd.h 2005-11-16 23:44:41 +0100 @@ -3,7 +3,9 @@ #define VCMD_enter_namespace VC_CMD(PROCALT, 1, 0) #define VCMD_cleanup_namespace VC_CMD(PROCALT, 2, 0) -#define VCMD_set_namespace VC_CMD(PROCALT, 3, 0) + +#define VCMD_set_namespace_v0 VC_CMD(PROCALT, 3, 0) +#define VCMD_set_namespace VC_CMD(PROCALT, 3, 1) #ifdef __KERNEL__ diff -NurpP linux-2.6.14.2-vs2.1.0-rc7.1/kernel/vserver/namespace.c linux-2.6.14.2-vs2.1.0-rc7.2/kernel/vserver/namespace.c --- linux-2.6.14.2-vs2.1.0-rc7.1/kernel/vserver/namespace.c 2005-10-29 03:19:02 +0200 +++ linux-2.6.14.2-vs2.1.0-rc7.2/kernel/vserver/namespace.c 2005-11-16 23:42:58 +0100 @@ -103,11 +103,14 @@ int vc_set_namespace(uint32_t id, void _ struct vx_info *vxi; int ret; - if (vx_check(0, VX_ADMIN|VX_WATCH)) + if (vx_check(0, VX_ADMIN)) return -ENOSYS; + vxi = lookup_vx_info(id); + if (!vxi) + return -ESRCH; + task_lock(current); - vxi = get_vx_info(current->vx_info); fs = current->fs; atomic_inc(&fs->count); ns = current->namespace; diff -NurpP linux-2.6.14.2-vs2.1.0-rc7.1/kernel/vserver/switch.c linux-2.6.14.2-vs2.1.0-rc7.2/kernel/vserver/switch.c --- linux-2.6.14.2-vs2.1.0-rc7.1/kernel/vserver/switch.c 2005-11-07 00:30:40 +0100 +++ linux-2.6.14.2-vs2.1.0-rc7.2/kernel/vserver/switch.c 2005-11-16 23:45:00 +0100 @@ -108,6 +108,8 @@ long do_vserver(uint32_t cmd, uint32_t i case VCMD_nx_info: return vc_nx_info(id, data); + case VCMD_set_namespace_v0: + return vc_set_namespace(-1, data); case VCMD_set_namespace: return vc_set_namespace(id, data); case VCMD_cleanup_namespace: