ppcrcd/trunk/conf.dir/usr/lib/ppcrcd: assemble find_md

sparky cvs at pld-linux.org
Sat Mar 4 19:27:40 CET 2006


Author: sparky
Date: Sat Mar  4 19:27:37 2006
New Revision: 7086

Added:
   ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/assemble   (contents, props changed)
Modified:
   ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/find_md
Log:
- fixed md detection


Added: ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/assemble
==============================================================================
--- (empty file)
+++ ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/assemble	Sat Mar  4 19:27:37 2006
@@ -0,0 +1,8 @@
+#!/bin/sh
+DEV=$1
+
+if ps aux | grep mdadm | grep -q $DEV; then
+	exec /bin/true
+else
+	exec /sbin/mdadm --assemble --scan $DEV
+fi

Modified: ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/find_md
==============================================================================
--- ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/find_md	(original)
+++ ppcrcd/trunk/conf.dir/usr/lib/ppcrcd/find_md	Sat Mar  4 19:27:37 2006
@@ -10,7 +10,7 @@
 
 sub verbose {
 	my $verb = shift;
-	return if $verb > $verbose;
+	return if $verbose > $verb;
 	my $msg = shift;
 
 	warn "$prog: $msg\n";
@@ -48,6 +48,7 @@
 }
 my $cnt = 0;
 
+mkdir "/mnt";
 open MD_OUT, ">> /etc/mdadm.conf";
 open FS_OUT, ">> /etc/fstab";
 open MO_OUT, "> /etc/modprobe.d/md.conf";
@@ -55,18 +56,20 @@
 foreach my $uuid ( sort keys %by_uuid ) {
 	# dirname: ex: md0_hda2hdc2
 	my $dirname = "md${cnt}_" . join '', sort @{$by_uuid{$uuid}};
-	verbose(2, "  Preparing /dev/$dirname");
+	verbose(2, "  Preparing /mnt/$dirname");
 	
-	printf MD_OUT "DEVICE ", join " /dev/", ('', @{$by_uuid{$uuid}});
+	printf MD_OUT "DEVICE " . join " /dev/", ('', @{$by_uuid{$uuid}});
 	printf MD_OUT "\nARRAY /dev/md$cnt uuid=$uuid\n";
 	
 	printf FS_OUT "/dev/md$cnt /mnt/$dirname auto defaults 0 0\n";
 	mkdir "/mnt/$dirname";
 	
-	printf MO_OUT "install block-major-9-$cnt /sbin/mdadm --assemble --scan /dev/md$cnt\n";
+	printf MO_OUT "install block-major-9-$cnt /usr/lib/ppcrcd/assemble /dev/md$cnt";
 	system("mknod /dev/md$cnt b 9 $cnt");
 	$cnt++;
 }
 close MD_OUT;
 close FS_OUT;
 close MO_OUT;
+
+system("modprobe md")


More information about the pld-cvs-commit mailing list