getFileValue nid "$vdir/ncontext" "$vdir/context"
- CHBIND_OPTS=( $SILENT_OPT ${nid:+--nid "$nid"} ${bcast:+--bcast "$bcast"} )
+ CHBIND_OPTS=( $SILENT_OPT --secure ${nid:+--nid "$nid"} ${bcast:+--bcast "$bcast"} )
for i in "${INTERFACES[@]}"; do
CHBIND_OPTS=( "${CHBIND_OPTS[@]}" --ip "$i" )
CHCONTEXT_INIT_OPTS=()
- test -n "$INITSTYLE" || \
+ test x"$INITSTYLE" = xrescue || \
getFileValue INITSTYLE "$cfgdir"/style
getFileValue RUNLEVEL_START "$cfgdir"/runlevel
getFileValue RUNLEVEL_START "$cfgdir"/runlevel.start
## LEGACY ALERT
test ! -e "$iface"/only_ip || break
- local vlan_info
- if vlan_info=$(_getVLANInfo "$dev"); then
- test -d /proc/net/vlan || {
- echo -e $"VLAN device-name used, but vlan subsystem not enabled.\nTry to execute 'modprobe 8021q' before starting the vservers" >&2
- return 1
- }
- test -e "$iface/vlandev" \
- -o \( -e "$iface/../vlandev" -a ! -e "$iface/novlandev" \) \
- -o \( -e "$__CONFDIR/.defaults/interfaces/vlandev" \
- -a ! -e "$iface/novlandev" \
- -a ! -e "$iface/../novlandev" \) && {
+ test -e "$iface/vlandev" \
+ -o \( -e "$iface/../vlandev" -a ! -e "$iface/novlandev" \) \
+ -o \( -e "$__CONFDIR/.defaults/interfaces/vlandev" \
+ -a ! -e "$iface/novlandev" \
+ -a ! -e "$iface/../novlandev" \) && {
+ local vlan_info
+ if vlan_info=$(_getVLANInfo "$dev"); then
+ test -d /proc/net/vlan || {
+ echo -e $"VLAN device-name used, but vlan subsystem not enabled.\nTry to execute 'modprobe 8021q' before starting the vservers" >&2
+ return 1
+ }
_addInterfaceCmd VCONFIG $vlan_info
- }
- fi
+ fi
+ }
if ! test -e "$iface"/indirect; then
_addInterfaceCmd IP_ADDR "$ip${prefix:+/$prefix}" broadcast ${bcast:-+} ${name:+label "$dev:$name"} dev "$dev"
panic $"\
/proc/uptime can not be accessed. Usually, this is caused by
procfs-security. Please read the FAQ for more details
-http://www.linux-vserver.org/index.php?page=Linux-Vserver+FAQ"
+http://linux-vserver.org/Proc-Security"
}
$_VDLIMIT --xid $ctx "$directory" | \
$_GREP '_used=' > "$vdir/cache/dlimits/$cachename"
+
+ $_VDLIMIT --xid $ctx --remove "$directory"
}
done
}
+function loadDeviceMap
+{
+ local xid="$1"
+ local dir="$2"
+ local flags device target
+
+ test -d "$dir" || return 0
+
+ for i in "$dir"/*; do
+ test -d "$i" || continue
+
+ local -a vdevmap_opts=()
+ test -e "$i/create" && vdevmap_opts=( "${vdevmap_opts[@]}" --create )
+ test -e "$i/open" && vdevmap_opts=( "${vdevmap_opts[@]}" --open )
+ test -e "$i/remap" && vdevmap_opts=( "${vdevmap_opts[@]}" --remap )
+
+ getFileValue flags "$i/flags" || :
+ getFileValue device "$i/device" || :
+ getFileValue target "$i/target" || :
+ vdevmap_opts=( "${vdevmap_opts[@]}" ${flags:+--flags "$flags"} \
+ ${device:+--device "$device"} ${target:+--target "$target"} )
+
+ $_VDEVMAP --xid "$xid" "${vdevmap_opts[@]}" || return $?
+ done
+}