From: Daniel Hokka Zakrisson Date: Wed, 27 Aug 2008 10:38:07 +0000 (+0000) Subject: This is going to be handled in the kernel. X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b54486e6eff7f10185e0f43234403b0fc2dd048;p=util-vserver.git This is going to be handled in the kernel. git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2777 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/lib/syscall_ctxcreate-v23.hc b/lib/syscall_ctxcreate-v23.hc deleted file mode 100644 index 97aded8..0000000 --- a/lib/syscall_ctxcreate-v23.hc +++ /dev/null @@ -1,53 +0,0 @@ -// $Id$ --*- c -*-- - -// Copyright (C) 2008 Daniel Hokka Zakrisson -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - -#ifdef HAVE_CONFIG_H -# include -#endif -#include -#include - -static inline ALWAYSINLINE xid_t -vc_ctx_create_v23(xid_t xid, struct vc_ctx_flags *flags) -{ - struct vcmd_ctx_create data = { - .flagword = (VC_VXF_STATE_SETUP | VC_VXF_STATE_ADMIN | - VC_VXF_STATE_INIT) - }; - xid_t res; - pid_t pid; - uint64_t spaces = vc_get_space_default(); - - if (flags) - data.flagword = flags->flagword & flags->mask; - - pid = sys_clone(spaces | SIGCHLD | CLONE_FILES | CLONE_FS, NULL); - if (pid == -1) - return -1; - else if (pid > 0) - vc_exitLikeProcess(pid, 1); - - res = vserver(VCMD_ctx_create, CTX_USER2KERNEL(xid), &data); - res = CTX_KERNEL2USER(res); - - if (res != VC_NOCTX && spaces) { - vc_set_namespace(VC_SAMECTX, spaces); - } - - return res; -} diff --git a/lib/syscall_ctxcreate.c b/lib/syscall_ctxcreate.c index cb42c74..541213e 100644 --- a/lib/syscall_ctxcreate.c +++ b/lib/syscall_ctxcreate.c @@ -36,16 +36,11 @@ # include "syscall_ctxcreate-v21.hc" #endif -#if defined(VC_ENABLE_API_V23) -# include "syscall_ctxcreate-v23.hc" -#endif - #if defined(VC_ENABLE_API_V13) || defined(VC_ENABLE_API_V21) xid_t vc_ctx_create(xid_t xid, struct vc_ctx_flags *flags) { - CALL_VC(CALL_VC_V23P(vc_ctx_create, xid, flags), - CALL_VC_V21 (vc_ctx_create, xid, flags), + CALL_VC(CALL_VC_V21 (vc_ctx_create, xid, flags), CALL_VC_V13A(vc_ctx_create, xid, flags)); } #endif diff --git a/lib/syscall_ctxmigrate-v23.hc b/lib/syscall_ctxmigrate-v23.hc deleted file mode 100644 index a53462f..0000000 --- a/lib/syscall_ctxmigrate-v23.hc +++ /dev/null @@ -1,52 +0,0 @@ -// $Id$ --*- c -*-- - -// Copyright (C) 2008 Daniel Hokka Zakrisson -// -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; version 2 of the License. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - - -#ifdef HAVE_CONFIG_H -# include -#endif -#include -#include - -static inline ALWAYSINLINE int -vc_ctx_migrate_v23(xid_t xid, uint_least64_t flags) -{ - int ret; - struct vcmd_ctx_migrate data = { .flagword = flags }; - int do_spaces = 0; - - ret = vc_getXIDType(xid); - if (ret == vcTYPE_STATIC || ret == vcTYPE_DYNAMIC) { - do_spaces = 1; - ret = vc_enter_namespace(xid, vc_get_space_default()); - if (ret) - return ret; - } - - ret = vserver(VCMD_ctx_migrate, CTX_USER2KERNEL(xid), &data); - - if (!ret && do_spaces) { - /* Allocate a new pid */ - int pid = sys_clone(SIGCHLD | CLONE_FS | CLONE_FILES, NULL); - if (pid == -1) - return -1; - else if (pid > 0) - vc_exitLikeProcess(pid, 1); - } - - return ret; -} diff --git a/lib/syscall_ctxmigrate.c b/lib/syscall_ctxmigrate.c index 011d014..a60b7c8 100644 --- a/lib/syscall_ctxmigrate.c +++ b/lib/syscall_ctxmigrate.c @@ -36,16 +36,11 @@ # include "syscall_ctxmigrate-v21.hc" #endif -#if defined(VC_ENABLE_API_V23) -# include "syscall_ctxmigrate-v23.hc" -#endif - #if defined(VC_ENABLE_API_V13) || defined(VC_ENABLE_API_V21) int vc_ctx_migrate(xid_t xid, uint_least64_t flags) { - CALL_VC(CALL_VC_V23P (vc_ctx_migrate, xid, flags), - CALL_VC_SPACES(vc_ctx_migrate, xid, flags), + CALL_VC(CALL_VC_SPACES(vc_ctx_migrate, xid, flags), CALL_VC_V13A (vc_ctx_migrate, xid)); } #endif