simplified it and made it work with recent kernels
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Fri, 25 Mar 2005 02:37:41 +0000 (02:37 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Fri, 25 Mar 2005 02:37:41 +0000 (02:37 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1988 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/lib_internal/switchtowatchxid.c

index f88805d..35be736 100644 (file)
@@ -24,7 +24,7 @@
 #include <errno.h>
 #include <unistd.h>
 
-  // 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 {