From: Daniel Hokka Zakrisson Date: Thu, 8 Jul 2010 18:47:58 +0000 (+0000) Subject: Allow sharing of spaces. X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aef33b9810242b2a769ad29facc1678f30c0d235;p=util-vserver.git Allow sharing of spaces. git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@2894 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/scripts/vserver.functions b/scripts/vserver.functions index f8c78b6..e41334c 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -49,6 +49,8 @@ declare -a OPTS_VTAG_CREATE=() declare -a OPTS_VTAG_ENTER=() declare -a OPTS_VMEMCTRL=() declare -a OPTS_VSPACE=( --default ) +declare -a OPTS_VSPACE_SHARED=() +declare -a VSPACE_SHARED_CMD=() declare -a STOPCMD_PREPARE=() @@ -787,16 +789,30 @@ function _generateSpaceOptions { local vdir="$1" local d="$vdir"/spaces + local shared - ( test ! -e "$d"/pid ) || \ - OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --pid ) + 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 --xid "$shared" --pid -- ) + fi + fi - test ! -e "$d"/net || { - OPTS_VSPACE=( "${OPTS_VSPACE[@]}" --net ) + 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 --xid "$shared" --net -- ) + fi + fi local mask getFileValue mask "$d"/mask || \ diff --git a/scripts/vserver.start b/scripts/vserver.start index 6658acb..7945aca 100644 --- a/scripts/vserver.start +++ b/scripts/vserver.start @@ -143,6 +143,7 @@ if $_VSERVER_INFO - FEATURE migrate; then $_VCONTEXT --create "${OPTS_VCONTEXT_CREATE[@]}" -- \ ${OPTION_STRACE:+$_STRACE -fF -o /tmp/vserver-start.$$} \ ${USE_VNAMESPACE:+$_VNAMESPACE --set -- } \ + "${VSPACE_SHARED_CMD[@]}" \ $_VSPACE --set "${OPTS_VSPACE[@]}" -- \ $_EXEC_REMOUNT /proc /sys -- \ $_VLIMIT --dir "$VSERVER_DIR"/rlimits --missingok -- \