aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Jones <pjones@redhat.com>2008-05-14 14:00:23 -0400
committerPeter Jones <pjones@pjones2.localdomain>2008-05-14 14:00:23 -0400
commit6ea10962cfb581e79616f476ec1fe8707b0f73ef (patch)
treea97e22a7eeb687be5c5e7edc3aed537fc7f02d4d
parentb0bdbddcbc1e021b75a439d32043fbb4e798629d (diff)
downloadinitscripts-6ea10962cfb581e79616f476ec1fe8707b0f73ef.tar
initscripts-6ea10962cfb581e79616f476ec1fe8707b0f73ef.tar.gz
initscripts-6ea10962cfb581e79616f476ec1fe8707b0f73ef.tar.bz2
initscripts-6ea10962cfb581e79616f476ec1fe8707b0f73ef.tar.xz
initscripts-6ea10962cfb581e79616f476ec1fe8707b0f73ef.zip
Make resolve_dm_raid() work when your original raid was set up with parameters
generated by an older dmraid's "dmraid -ay --test".
-rwxr-xr-xrc.d/init.d/functions7
1 files changed, 7 insertions, 0 deletions
diff --git a/rc.d/init.d/functions b/rc.d/init.d/functions
index bb943963..fed1fafa 100755
--- a/rc.d/init.d/functions
+++ b/rc.d/init.d/functions
@@ -584,6 +584,13 @@ resolve_dm_name() {
done
line=$(echo "$line" | sed -e 's/^[ \t]*//' -e 's/[ \t]*$//' \
-e 's/ core [12] [[:digit:]]\+ / core [12] [[:digit:]]\\+ /')
+ # XXX PJFIX -- this method of handling extra parameters is really just
+ # asking for failure -- the better way would be to make
+ # dmsetup or dmraid be able to do resolve_dm_name for us.
+ if [ "$(echo $line | awk '{ print $3 }')" == "mirror" ]; then
+ line=$(echo "$line" | sed \
+ -e 's/ 1 [[:alpha:]][[:alnum:]_]\+$/\\($\\|&$\\)/')
+ fi
/sbin/dmsetup table | \
sed -n -e "s/.*\(no block devices found\|No devices found\).*//" \
-e "s/\(^[^:]\+\): $line\( \+$\|$\)/\1/p"