X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=scripts%2Fvserver.functions;h=b0bf171e09f5c3f311819c1a26b0a81aaeffbc12;hb=9a44bc6e4f5be84c8cc9fe9a5054c86fde4e65e3;hp=ba07f332c1978467deb81ee39a927245b5b05973;hpb=ca2b0cc0a04e2ba7d5f2fa836167e711bfb7af25;p=util-vserver.git diff --git a/scripts/vserver.functions b/scripts/vserver.functions index ba07f33..b0bf171 100644 --- a/scripts/vserver.functions +++ b/scripts/vserver.functions @@ -1226,3 +1226,28 @@ function _namespaceCleanup 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 +}