SVN: geninitrd/trunk/mod-md.sh

arekm arekm at pld-linux.org
Fri Jun 24 11:00:43 CEST 2011


Author: arekm
Date: Fri Jun 24 11:00:43 2011
New Revision: 12249

Modified:
   geninitrd/trunk/mod-md.sh
Log:
Don't clean dev_list_extra when DEVICE partitions is used in mdadm.conf.

Modified: geninitrd/trunk/mod-md.sh
==============================================================================
--- geninitrd/trunk/mod-md.sh	(original)
+++ geninitrd/trunk/mod-md.sh	Fri Jun 24 11:00:43 2011
@@ -144,15 +144,18 @@
 	# 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


More information about the pld-cvs-commit mailing list