]> git.pld-linux.org Git - projects/geninitrd.git/commitdiff
Don't clean dev_list_extra when DEVICE partitions is used in mdadm.conf.
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Fri, 24 Jun 2011 09:00:43 +0000 (09:00 +0000)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Fri, 24 Jun 2011 09:00:43 +0000 (09:00 +0000)
svn-id: @12249

mod-md.sh

index db3bb5faea8719f0e21125a8d7a668e5aa360e80..7d4d88404bac3dc3f63fc549edf77912b20f002f 100644 (file)
--- a/mod-md.sh
+++ b/mod-md.sh
@@ -144,15 +144,18 @@ initrd_gen_md() {
        # LVM on RAID case
        local dev_list_extra ex_dev
        dev_list_extra=$(awk '/^DEVICE / { for (i=2; i<=NF; i++) { printf "%s ", $i; }; } ' /etc/mdadm.conf | xargs)
-       if [ "$dev_list_extra" = "partitions" ]; then
-               # FIXME: handle this case (see man mdadm.conf)
-               echo "DEVICE partitions" >> "$DESTDIR/etc/mdadm.conf"
-               dev_list_extra=""
-       else
-               for ex_dev in $dev_list_extra; do
-                       echo "DEVICE $ex_dev" >> "$DESTDIR/etc/mdadm.conf"
-               done
-       fi
+       new_dev_list_extra=""
+       for ex_dev in $dev_list_extra; do
+               if [ "$ex_dev" = "partitions" ]; then
+                       echo "DEVICE partitions" >> "$DESTDIR/etc/mdadm.conf"
+                       # FIXME: find and copy partition devices from /proc/partitions
+                       #        - best if done at runtime, now initrd gen time
+                       continue
+               fi
+               echo "DEVICE $ex_dev" >> "$DESTDIR/etc/mdadm.conf"
+               new_dev_list_extra="$new_dev_list_extra $ex_dev"
+       done
+       dev_list_extra=$new_dev_list_extra
 
        local cr_rootdev cr_dev_list do_md0=1 nr cr_dev_list_md f cr_md_conf
        for nr in `seq 1 $rootdev_nr`; do
This page took 0.098549 seconds and 4 git commands to generate.