mdraid: do not handle isw_raid_member if rd_NO_MDIMSM is set in udev ENV
authorHarald Hoyer <harald@redhat.com>
Fri, 17 Jul 2009 13:01:08 +0000 (15:01 +0200)
committerHarald Hoyer <harald@redhat.com>
Fri, 17 Jul 2009 14:00:19 +0000 (16:00 +0200)
install md-noimsm.sh if mdadm does not support imsm.

modules.d/90mdraid/65-md-incremental-imsm.rules
modules.d/90mdraid/65-md-incremental.rules [deleted file]
modules.d/90mdraid/install
modules.d/90mdraid/md-noimsm.sh [new file with mode: 0644]
modules.d/90mdraid/parse-md.sh

index f6efb5608abe5218cc1f4de34df69c08fd474033..7879214ccca248dbdd0df67f28e928a676913a26 100644 (file)
@@ -5,6 +5,7 @@
 ACTION!="add", GOTO="md_inc_end"
 SUBSYSTEM!="block", GOTO="md_inc_end"
 ENV{ID_FS_TYPE}!="linux_raid_member|isw_raid_member", GOTO="md_inc_end"
+ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_inc_end"
 
 TEST=="/tmp/.mdraid_start-%k", GOTO="md_inc_end"
 
diff --git a/modules.d/90mdraid/65-md-incremental.rules b/modules.d/90mdraid/65-md-incremental.rules
deleted file mode 100644 (file)
index 38e7654..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# This file causes block devices with Linux RAID (mdadm) signatures to
-# automatically cause mdadm to be run.
-# See udev(8) for syntax
-
-ACTION!="add", GOTO="md_inc_end"
-SUBSYSTEM!="block", GOTO="md_inc_end"
-ENV{ID_FS_TYPE}!="linux_raid_member", GOTO="md_inc_end"
-
-TEST=="/tmp/.mdraid_start-%k", GOTO="md_inc_end"
-
-IMPORT{program}="/sbin/mdadm --examine --export $tempnode"
-
-# UUID CHECK
-
-LABEL="do_md_inc"
-
-RUN+="/sbin/mdadm -I --no-degraded $env{DEVNAME}"
-
-RUN+="/bin/sh -c '>/tmp/.mdraid_start-%k; /bin/ln -s /sbin/mdraid_start /initqueue/mdraid_start.sh'"
-
-ATTR{partition}!="?*", RUN+="/sbin/partx -d $env{DEVNAME}"
-
-LABEL="md_inc_end"
index 27765579e606650d55599cd658abc75f09b57f6c..45cf352762a825f18971fce09e3c5f7d576a63fe 100755 (executable)
@@ -16,10 +16,10 @@ else
     inst_rules 64-md-raid.rules
 fi
 
-if mdadm -Q -e imsm /dev/null &> /dev/null; then
-    inst_rules "$moddir/65-md-incremental-imsm.rules"
-else
-    inst_rules "$moddir/65-md-incremental.rules"
+inst_rules "$moddir/65-md-incremental-imsm.rules"
+
+if ! mdadm -Q -e imsm /dev/null &> /dev/null; then    
+    inst_hook pre-trigger 30 "$moddir/md-noimsm.sh"
 fi
 
 
@@ -34,4 +34,4 @@ if [ -x  /sbin/mdmon ] ; then
 fi 
 
 inst "$moddir/mdraid_start.sh" /sbin/mdraid_start
-inst_hook cmdline 30 "$moddir/parse-md.sh"
+inst_hook pre-trigger 30 "$moddir/parse-md.sh"
diff --git a/modules.d/90mdraid/md-noimsm.sh b/modules.d/90mdraid/md-noimsm.sh
new file mode 100644 (file)
index 0000000..7ff0b33
--- /dev/null
@@ -0,0 +1,2 @@
+info "rd_NO_MDIMSM: no MD RAID for imsm/isw raids"
+udevadm control --property=rd_NO_MDIMSM=1
\ No newline at end of file
index af89084d7820f7568fcf80ac9b03d378b3912246..910fe4db19e97b2d725d09a5e276d6479dfbda9d 100644 (file)
@@ -1,6 +1,7 @@
-initrdargs="$initrdargs rd_MD_UUID rd_NO_MD" 
+initrdargs="$initrdargs rd_MD_UUID rd_NO_MD rd_NO_MDIMSM
 
-if $(getarg rd_NO_MD); then
+if getarg rd_NO_MD; then
+    info "rd_NO_MD: removing MD RAID activation"
     rm /etc/udev/rules.d/65-md-incremental*.rules
 else
     MD_UUID=$(getargs rd_MD_UUID=)
@@ -25,3 +26,7 @@ else
     fi
 fi
 
+if getarg rd_NO_MDIMSM; then
+    info "rd_NO_MDIMSM: no MD RAID for imsm/isw raids"
+    udevadm control --property=rd_NO_MDIMSM=1
+fi
\ No newline at end of file