From: Enrico Scholz Date: Fri, 25 Mar 2005 02:37:41 +0000 (+0000) Subject: simplified it and made it work with recent kernels X-Git-Tag: IPSENTINEL_VERSION_0_12~6 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a68fca9dd6797a063bec66ab3f0d07a046b2a0b3;p=util-vserver.git simplified it and made it work with recent kernels git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1988 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/lib_internal/switchtowatchxid.c b/util-vserver/lib_internal/switchtowatchxid.c index f88805d..35be736 100644 --- a/util-vserver/lib_internal/switchtowatchxid.c +++ b/util-vserver/lib_internal/switchtowatchxid.c @@ -24,7 +24,7 @@ #include #include - // try to switch in context 1 + // try to switch into context 1 bool switchToWatchXid(char const **errptr) { @@ -35,34 +35,9 @@ switchToWatchXid(char const **errptr) if (vc_get_task_xid(0)==1) return true; if (vc_isSupported(vcFEATURE_MIGRATE)) { - int max_tries = 20; - again: - if (vc_ctx_create(1)==VC_NOCTX) { - if (errno==EBUSY && --max_tries>0) { - usleep(50000); - goto again; - } - - if (errno!=EEXIST) { - if (errptr) *errptr = "vc_create_context()"; - return false; - } - - if (vc_ctx_migrate(1)==-1) { - if (errptr) *errptr = "vc_migrate_context()"; - return false; - } - } - else { - struct vc_ctx_flags flags = { - .flagword = 0, - .mask = VC_VXF_STATE_SETUP, - }; - - if (vc_set_cflags(1, &flags)==-1) { - if (errptr) *errptr = "vc_set_cflags()"; - return false; - } + if (vc_ctx_migrate(1)==-1) { + if (errptr) *errptr = "vc_migrate_context()"; + return false; } } else {