diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.1.1/include/linux/vserver/context.h linux-2.6.18.3-vs2.1.1.1.2/include/linux/vserver/context.h --- linux-2.6.18.3-vs2.1.1.1.1/include/linux/vserver/context.h 2006-09-25 15:40:02 +0200 +++ linux-2.6.18.3-vs2.1.1.1.2/include/linux/vserver/context.h 2006-11-23 02:29:17 +0100 @@ -17,7 +17,6 @@ /* context flags */ -#define VXF_INFO_LOCK 0x00000001 #define VXF_INFO_SCHED 0x00000002 #define VXF_INFO_NPROC 0x00000004 #define VXF_INFO_PRIVATE 0x00000008 diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.1.1/include/linux/vserver/network.h linux-2.6.18.3-vs2.1.1.1.2/include/linux/vserver/network.h --- linux-2.6.18.3-vs2.1.1.1.1/include/linux/vserver/network.h 2006-11-07 04:33:09 +0100 +++ linux-2.6.18.3-vs2.1.1.1.2/include/linux/vserver/network.h 2006-11-23 02:29:00 +0100 @@ -13,7 +13,6 @@ /* network flags */ -#define NXF_INFO_LOCK 0x00000001 #define NXF_INFO_PRIVATE 0x00000008 #define NXF_STATE_SETUP (1ULL<<32) diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.1.1/kernel/vserver/context.c linux-2.6.18.3-vs2.1.1.1.2/kernel/vserver/context.c --- linux-2.6.18.3-vs2.1.1.1.1/kernel/vserver/context.c 2006-11-23 01:58:31 +0100 +++ linux-2.6.18.3-vs2.1.1.1.2/kernel/vserver/context.c 2006-11-23 02:34:06 +0100 @@ -651,7 +651,8 @@ int vx_migrate_task(struct task_struct * "vx_migrate_task(%p,%p[#%d.%d])", p, vxi, vxi->vx_id, atomic_read(&vxi->vx_usecnt)); - if (vx_info_flags(vxi, VXF_INFO_PRIVATE, 0)) + if (vx_info_flags(vxi, VXF_INFO_PRIVATE, 0) && + !vx_info_flags(vxi, VXF_STATE_SETUP, 0)) return -EACCES; old_vxi = task_get_vx_info(p); diff -NurpP --minimal linux-2.6.18.3-vs2.1.1.1.1/kernel/vserver/network.c linux-2.6.18.3-vs2.1.1.1.2/kernel/vserver/network.c --- linux-2.6.18.3-vs2.1.1.1.1/kernel/vserver/network.c 2006-11-23 02:01:47 +0100 +++ linux-2.6.18.3-vs2.1.1.1.2/kernel/vserver/network.c 2006-11-23 02:34:31 +0100 @@ -388,7 +388,8 @@ int nx_migrate_task(struct task_struct * atomic_read(&nxi->nx_usecnt), atomic_read(&nxi->nx_tasks)); - if (nx_info_flags(nxi, NXF_INFO_PRIVATE, 0)) + if (nx_info_flags(nxi, NXF_INFO_PRIVATE, 0) && + !nx_info_flags(nxi, NXF_STATE_SETUP, 0)) return -EACCES; /* maybe disallow this completely? */ @@ -396,10 +397,6 @@ int nx_migrate_task(struct task_struct * if (old_nxi == nxi) goto out; - ret =-EACCES; - if (nx_info_flags(old_nxi, NXF_INFO_LOCK, 0)) - goto out; - task_lock(p); if (old_nxi) clr_nx_info(&p->nx_info);