*/
#include <linux/config.h>
+#include <linux/sched.h>
+#include <linux/namespace.h>
#include <linux/vserver/legacy.h>
-#include <linux/vserver/context.h>
#include <linux/vserver/namespace.h>
#include <linux/vserver.h>
-#include <linux/sched.h>
-#include <linux/namespace.h>
+#include <linux/vs_base.h>
+#include <linux/vs_context.h>
+#include <linux/vs_network.h>
#include <asm/errno.h>
#include <asm/uaccess.h>
}
return ret;
}
-
+
if (!vx_check(0, VX_ADMIN) ||
- !capable(CAP_SYS_ADMIN) || vx_flags(VX_INFO_LOCK, 0))
+ !capable(CAP_SYS_ADMIN) || vx_flags(VX_INFO_PRIVATE, 0))
return -EPERM;
/* ugly hack for Spectator */
if (((ctx > MAX_S_CONTEXT) && (ctx != VX_DYNAMIC_ID)) ||
(ctx == 0))
return -EINVAL;
-
+
if ((ctx == VX_DYNAMIC_ID) || (ctx < MIN_D_CONTEXT))
new_vxi = locate_or_create_vx_info(ctx);
else
if (!new_vxi)
return -EINVAL;
new_vxi->vx_flags &= ~(VXF_STATE_SETUP|VXF_STATE_INIT);
-
+
ret = vx_migrate_task(current, new_vxi);
if (ret == 0) {
current->vx_info->vx_bcaps &= (~vc_data.remove_cap);
err = 0;
else if (nxi) {
int found = 0;
-
+
// We are allowed to select a subset of the currently
// installed IP numbers. No new one allowed
// We can't change the broadcast address though