Changeset 2658
- Timestamp:
- 01/12/08 16:48:04 (11 months ago)
- Files:
-
- trunk/src/vspace.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/vspace.c
r2618 r2658 23 23 24 24 #include "util.h" 25 #include <lib_internal/sys_ unshare.h>25 #include <lib_internal/sys_clone.h> 26 26 27 27 #include <vserver.h> … … 103 103 104 104 static void 105 newSpaces(uint_least64_t mask) 106 { 107 if (sys_unshare((int) mask) == -1) { 108 perror(ENSC_WRAPPERS_PREFIX "unshare()"); 109 exit(wrapper_exit_code); 105 newSpaces(uint_least64_t mask, const char *cmd) 106 { 107 pid_t pid; 108 109 signal(SIGCHLD, SIG_DFL); 110 111 #ifdef NDEBUG 112 pid = sys_clone((int) mask | CLONE_VFORK|SIGCHLD, 0); 113 #else 114 pid = sys_clone((int) mask | SIGCHLD, 0); 115 #endif 116 117 switch (pid) { 118 case -1 : 119 perror(ENSC_WRAPPERS_PREFIX "clone()"); 120 exit(wrapper_exit_code); 121 case 0 : 122 break; 123 default : 124 exitLikeProcess(pid, cmd, wrapper_exit_code); 110 125 } 111 126 } … … 186 201 WRITE_MSG(2, "No command specified; try '--help' for more information\n"); 187 202 else { 188 if (do_new) newSpaces(mask );203 if (do_new) newSpaces(mask, argv[optind]); 189 204 else if (do_set) setSpaces(VC_SAMECTX, mask); 190 205 else if (do_enter) enterSpaces(xid, mask);
