X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fsyscall_ctxmigrate-v21.hc;h=86100a84ed5a67aef7391500fd2dde565b008b99;hb=a582711bc911f1fe45ce248d47da6ddcd21512e2;hp=ca6666f45f9ed128ac8ae7e7cbaa1ed82f9afc78;hpb=60eb97440f168c25135c63ef3ce06cf6c0babdda;p=util-vserver.git diff --git a/lib/syscall_ctxmigrate-v21.hc b/lib/syscall_ctxmigrate-v21.hc index ca6666f..86100a8 100644 --- a/lib/syscall_ctxmigrate-v21.hc +++ b/lib/syscall_ctxmigrate-v21.hc @@ -22,13 +22,17 @@ #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, CTX_USER2KERNEL(xid), &data); }