added $_VATTRIBUTE and $_VNAMESPACE
[util-vserver.git] / util-vserver / scripts / vserver.functions
index 4bf18c8..d6e6bc6 100644 (file)
@@ -228,8 +228,8 @@ function _generateFlagOptions
     while read flag; do
        case x"$flag" in
            x|x#)               ;;
-           dummy)              ;;
-           fakeinit)
+           xnamespace)         ;;
+           xfakeinit)
                CHCONTEXT_INIT_OPTS=( --disconnect --flag fakeinit )
                ;;
            *)
@@ -238,6 +238,9 @@ function _generateFlagOptions
                ;;
        esac
     done <"$vdir"/flags
+
+    isAvoidNamespace "$cfgdir" || \
+       CHCONTEXT_FLAG_OPTS=( "${CHCONTEXT_FLAG_OPTS[@]}" --flag namespace )
 }
 
 function _generateChcontextOptions
@@ -440,6 +443,7 @@ function generateOptions
 function mountVserver
 {
     local cfgdir=$1
+    local ns_opt=$2
     local vdir=$1/vdir
     local mtab_src
 
@@ -454,6 +458,9 @@ function mountVserver
     test "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$cfgdir"
     $_CHBIND "${CHBIND_OPTS[@]}" \
        $_SECURE_MOUNT -a --chroot "$vdir" --fstab "$cfgdir"/fstab
+
+    isAvoidNamespace "$cfgdir" || \
+       $_SECURE_MOUNT --rbind -n "$vdir" "/"
 }
 
 function umountVserver
@@ -463,7 +470,8 @@ function umountVserver
 
     is_ok=1
 
-    test -e "$cfgdir"/fstab || return 0
+    isAvoidNamespace "$cfgdir"  || return 0
+    test -e "$cfgdir"/fstab      || return 0
     test "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$cfgdir"
     
     pushd "$vdir/" >/dev/null