These got lost somehow.
[util-vserver.git] / lib / syscall_ctxmigrate-v21.hc
index ca6666f..733987e 100644 (file)
 #endif
 
 static inline ALWAYSINLINE int
-vc_ctx_migrate_spaces(xid_t xid)
+vc_ctx_migrate_spaces(xid_t xid, uint_least64_t flags)
 {
   int ret;
+  struct vcmd_ctx_migrate data = { .flagword = flags };
 
-  ret = vc_enter_namespace(xid, vc_get_space_mask() & ~(CLONE_NEWNS|CLONE_FS));
-  if (ret)
-    return ret;
+  ret = vc_getXIDType(xid);
+  if (ret == vcTYPE_STATIC || ret == vcTYPE_DYNAMIC) {
+    ret = vc_enter_namespace(xid, vc_get_space_mask() & ~(CLONE_NEWNS|CLONE_FS));
+    if (ret)
+      return ret;
+  }
 
-  return vserver(VCMD_ctx_migrate_v0, CTX_USER2KERNEL(xid), NULL);
+  return vserver(VCMD_ctx_migrate_v1, CTX_USER2KERNEL(xid), &data);
 }