From 9e9bcf76d468cce2a545026c8e5aca3a2ac9507f Mon Sep 17 00:00:00 2001 From: Daniel Hokka Zakrisson Date: Thu, 15 Jul 2010 22:30:08 +0000 Subject: [PATCH] Some improvements to namespace sharing. git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2897 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- scripts/vserver.functions | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/scripts/vserver.functions b/scripts/vserver.functions index d979401..b905968 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -112,6 +112,12 @@ function _generateChbindOptions test -n "$_HAVE_INTERFACE_OPTIONS" || _generateInterfaceOptions "$vdir" + if test -e "$vdir"/noncontext -o + \( -e "$vdir"/spaces/net -a ! -e "$vdir"/ncontext \); then + _HAVE_CHBIND_OPTIONS=1 + return 0 + fi + local f="$vdir"/interfaces/bcast getFileValue bcast "$f" f="$vdir"/interfaces/lback @@ -790,29 +796,21 @@ function _generateSpaceOptions local vdir="$1" local d="$vdir"/spaces local shared - - if test -e "$d"/pid; then - getFileValue shared "$d"/pid - if test -z "$shared"; then - OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid ) - else - OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --pid ) - VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --pid -- ) - fi - fi - - if test -e "$d"/net; then - getFileValue shared "$d"/net - # network context and namespace don't make much sense - _HAVE_CHBIND_OPTIONS=1 - CHBIND_CMD=() - if test -z "$shared"; then - OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net ) - else - OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --net ) - VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --net -- ) + local space + + for space in pid net; do + if test -e "$d"/$space; then + getFileValue shared "$d"/$space || shared="" + if test -z "$shared"; then + OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --$space ) + elif test "$shared" = "0"; then + # Do nothing + else + OPTS_VSPACE_SHARED=( "${OPTS_VSPACE_SHARED[@]}" --$space ) + VSPACE_SHARED_CMD=( "${VSPACE_SHARED_CMD[@]}" $_VSPACE --enter "$shared" --$space -- ) + fi fi - fi + done local mask getFileValue mask "$d"/mask || \ -- 1.8.1.5