SOURCES: util-vserver-0.30.210-namespace-cleanup.patch (NEW) - wal...

glen glen at pld-linux.org
Mon May 29 20:52:57 CEST 2006


Author: glen                         Date: Mon May 29 18:52:57 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- waldi's namespace cleanup patch

---- Files affected:
SOURCES:
   util-vserver-0.30.210-namespace-cleanup.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/util-vserver-0.30.210-namespace-cleanup.patch
diff -u /dev/null SOURCES/util-vserver-0.30.210-namespace-cleanup.patch:1.1
--- /dev/null	Mon May 29 20:52:57 2006
+++ SOURCES/util-vserver-0.30.210-namespace-cleanup.patch	Mon May 29 20:52:52 2006
@@ -0,0 +1,117 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 12_vnamespace_cleanup.dpatch by Micah Anderson <Micah Anderson <micah at debian.org>>
+##
+## All lines beginning with `## DP:' are a description of the patch.
+## DP: No description.
+
+ at DPATCH@
+diff -urNad trunk~/doc/configuration.xml trunk/doc/configuration.xml
+--- trunk~/doc/configuration.xml	2006-03-20 08:16:46.000000000 -0500
++++ trunk/doc/configuration.xml	2006-04-05 23:18:43.000000000 -0400
+@@ -37,6 +37,14 @@
+       </description>
+     </boolean>
+ 
++    <boolean id="global-namespace-cleanup" name="namespace-cleanup">
++      <description>
++Enable namespace cleanup globally. It can be overridden for a single vserver
++by setting the <optionref ref="global-nonamespace-cleanup">nonamespace-cleanup</optionref> flag
++there.
++      </description>
++    </boolean>
++
+     <link name="run.rev">
+       <description>
+ Path of the vserver run reverse directory. This directory contains
+@@ -344,6 +352,19 @@
+       </description>
+     </boolean>
+ 
++    <boolean id="global-nonamespace-cleanup" name="nonamespace-cleanup">
++      <description>
++Overrides the global <optionref ref="global-namespace-cleanup">namespace-cleanup</optionref> flag and disables
++namespace cleanup for the current vserver.
++      </description>
++    </boolean>
++
++    <boolean name="namespace-cleanup">
++      <description>
++Enable namespace cleanup for the current vserver.
++      </description>
++    </boolean>
++
+     <hash name="schedule">
+       <description>
+ [experimental; name is subject of possible change] Contains the
+diff -urNad trunk~/scripts/functions trunk/scripts/functions
+--- trunk~/scripts/functions	2006-03-20 08:16:45.000000000 -0500
++++ trunk/scripts/functions	2006-04-05 23:18:43.000000000 -0400
+@@ -480,6 +480,18 @@
+          -e "$cfgdir"/nonamespace
+ }
+ 
++function isNamespaceCleanup
++{
++    local cfgdir
++
++    $_VSERVER_INFO - FEATURE namespace   || return 0
++    cfgdir=$($_VSERVER_INFO "$1" CFGDIR) || return 0
++    test -e "$cfgdir"/nonamespace-cleanup && return 0
++    test -e "$__CONFDIR"/.defaults/namespace-cleanup -o \
++         -e "$cfgdir"/namespace-cleanup && return 1
++    return 0
++}
++
+ ## Usage: getAllVservers <var> [<KIND>*]
+ function getAllVservers
+ {
+diff -urNad trunk~/scripts/vserver.functions trunk/scripts/vserver.functions
+--- trunk~/scripts/vserver.functions	2006-03-20 08:16:45.000000000 -0500
++++ trunk/scripts/vserver.functions	2006-04-05 23:19:01.000000000 -0400
+@@ -743,13 +743,13 @@
+ 
+     test -n "$_HAVE_CHBIND_OPTIONS" || _generateChbindOptions "$cfgdir"
+ 
+-    test -z "$NAMESPACE_CLEANUP" || isAvoidNamespace "$cfgdir" || \
+-	$_VNAMESPACE --cleanup
+-
+     _mountVserverInternal "$cfgdir"/fstab
+     _mountVserverInternal "$cfgdir"/fstab.local
+     _mountVserverInternal "$cfgdir"/fstab.remote $_CHBIND "${CHBIND_OPTS[@]}"
+ 
++    isNamespaceCleanup "$cfgdir" || \
++        _namespaceCleanup
++
+     isAvoidNamespace "$cfgdir" || \
+ 	$_SECURE_MOUNT --rbind -n "$vdir" "/"
+ }
+@@ -1099,3 +1099,29 @@
+ 	_saveSingleDiskLimit "$vdir" "$dlimit"
+     done
+ }
++
++function _namespaceCleanup
++{
++    local root=$(readlink -f "$vdir")
++    local tmp="$root"
++    local list=""
++    while [ "$tmp" ]; do
++	list="$list $tmp"
++	tmp="${tmp%/*}"
++    done
++    local list_umount=""
++    while read dev path opts; do
++        [ "$path" ] || continue
++        for i in $root /dev /proc; do
++            [ "${path#$i}" != "$path" ] && continue 2
++        done
++        for i in $list /; do
++            [ "$path" = "$i" ] && continue 2
++        done
++        list_umount="$path $list_umount"
++    done < /proc/mounts
++    for i in $list_umount; do
++        umount $i
++    done
++}
++
================================================================


More information about the pld-cvs-commit mailing list