X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=src%2Fplanetlab.c;h=f3256a6002f4b98b2c0b248016805230a4cf68e3;hb=9e41e9cb64ff294c6d660f3fd5400199b5a22c95;hp=689ced40aea54b736e7384f67f70be641cc7800c;hpb=8d0288fbe38bb3db50d577ae4a532c6b512bb9aa;p=util-vserver-pl.git diff --git a/src/planetlab.c b/src/planetlab.c index 689ced4..f3256a6 100644 --- a/src/planetlab.c +++ b/src/planetlab.c @@ -100,7 +100,7 @@ process: unshare_mask = get_space_flag(ctx); if (unshare_mask != 0) { sys_unshare(unshare_mask); - vc_set_namespace(ctx, unshare_mask | vc_get_space_mask()); + vc_set_namespace(ctx, unshare_mask); } /* Set capabilities - these don't take effect until SETUP flag is unset */ @@ -188,6 +188,12 @@ pl_chcontext(xid_t ctx, uint64_t bcaps, const struct sliver_resources *slr) migrate: if (net_migrated || !vc_net_migrate(ctx)) { + /* Unshare the net namespace if the slice if requested in the local slice configuration */ + unshare_mask = get_space_flag(ctx); + if (unshare_mask != 0) { + vc_enter_namespace(ctx, unshare_mask); + } + if (!vc_tag_migrate(ctx) && !vc_ctx_migrate(ctx, 0)) break; /* done */ net_migrated = 1;