ENV{ID_FS_TYPE}!="*_raid_member", , GOTO="dm_end"
-TEST=="/tmp/.dmraid_scan-%k", GOTO="dm_end"
-
-ENV{DEVTYPE}!="partition", \
- RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
-
ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}!="?*", GOTO="dm_end"
ENV{rd_NO_DM}=="?*", GOTO="dm_end"
-RUN+="/sbin/initqueue --onetime --unique --settled /sbin/dmraid_scan"
+PROGRAM=="/bin/sh -c 'for i in $sys/$devpath/holders/dm-[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
+ GOTO="dm_end"
-ACTION=="change", RUN+="/bin/sh -c '>/tmp/.dmraid_scan-%k'"
+ENV{DEVTYPE}!="partition", \
+ RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
+
+RUN+="/sbin/initqueue --onetime --unique --settled /sbin/dmraid_scan"
LABEL="dm_end"
KERNEL=="dm-[0-9]*", ACTION=="add", GOTO="lvm_end"
ENV{ID_FS_TYPE}!="LVM2_member", GOTO="lvm_end"
-TEST!="/tmp/.lvm_change-%k", \
- RUN+="/sbin/initqueue --settled --onetime --unique /sbin/lvm_scan"
-ACTION=="add", RUN+="/bin/sh -c '>/tmp/.lvm_scan-%k;'"
-ACTION=="change", RUN+="/bin/sh -c '>/tmp/.lvm_change-%k;>/tmp/.lvm_scan-%k;'"
+PROGRAM=="/bin/sh -c 'for i in $sys/$devpath/holders/dm-[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
+ GOTO="lvm_end"
+
+RUN+="/sbin/initqueue --settled --onetime --unique /sbin/lvm_scan"
+RUN+="/bin/sh -c '>/tmp/.lvm_scan-%k;'"
LABEL="lvm_end"
SUBSYSTEM!="block", GOTO="md_inc_end"
ENV{ID_FS_TYPE}!="linux_raid_member|isw_raid_member", GOTO="md_inc_end"
-ENV{DEVTYPE}!="partition", \
- RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
-
ENV{ID_FS_TYPE}=="isw_raid_member", ENV{rd_NO_MDIMSM}=="?*", GOTO="md_inc_end"
ENV{rd_NO_MD}=="?*", GOTO="md_inc_end"
-TEST=="/tmp/.mdraid_start-%k", GOTO="md_inc_end"
-TEST=="/tmp/.mdraid_container-%k", GOTO="md_inc_end"
+PROGRAM=="/bin/sh -c 'for i in $sys/$devpath/holders/md[0-9]*; do [ -e $$i ] && exit 0; done; exit 1;' ", \
+ GOTO="md_inc_end"
+
+ENV{DEVTYPE}!="partition", \
+ RUN+="/sbin/partx -d --nr 1-1024 $env{DEVNAME}"
KERNEL!="md*", IMPORT{program}="/sbin/mdadm --examine --export $tempnode"
#
ENV{rd_MDADMCONF}!="?*", GOTO="md_auto_end"
-ACTION=="change", \
- RUN+="/bin/sh -c '>/tmp/.mdraid_auto-%k'"
-
-TEST!="/tmp/.mdraid_auto-%k", \
- RUN+="/bin/sh -c 'ln -s /sbin/md_finished.sh /initqueue-finished/md_finished.sh;/sbin/initqueue --settled --onetime --unique /sbin/mdadm_auto'"
+RUN+="/bin/sh -c 'ln -s /sbin/md_finished.sh /initqueue-finished/md_finished.sh;/sbin/initqueue --settled --onetime --unique /sbin/mdadm_auto'"
GOTO="md_inc_end"
#
RUN+="/sbin/mdadm -I --no-degraded $env{DEVNAME}"
-ACTION=="change", \
- RUN+="/bin/sh -c '>/tmp/.mdraid_start-%k'"
-
RUN+="/bin/ln -s /sbin/md_finished.sh /initqueue-finished/md_finished.sh"
LABEL="md_inc_end"
LABEL="do_raidstart"
-TEST!="/tmp/.mdraid_start-%k", \
- RUN+="/bin/sh -c 'ln -s /sbin/md_finished.sh /initqueue-finished/md_finished.sh;/sbin/initqueue --settled --onetime --unique /sbin/mdraid_start'"
-
-ACTION=="change", \
- RUN+="/bin/sh -c '>/tmp/.mdraid_start-%k'"
+RUN+="/bin/sh -c 'ln -s /sbin/md_finished.sh /initqueue-finished/md_finished.sh;/sbin/initqueue --settled --onetime --unique /sbin/mdraid_start'"
LABEL="end_raidstart"
LABEL="do_container"
-TEST!="/tmp/.mdcontainer_start-%k", \
- RUN+="/bin/sh -c 'ln -s /sbin/md_finished.sh /initqueue-finished/md_finished.sh;/sbin/initqueue --settled --onetime --unique --name mdcontainer_start-%k /sbin/mdcontainer_start $env{DEVNAME}'"
-
-ACTION=="change", \
- RUN+="/bin/sh -c '>/tmp/.mdcontainer_start-%k'"
+RUN+="/bin/sh -c 'ln -s /sbin/md_finished.sh /initqueue-finished/md_finished.sh;/sbin/initqueue --settled --onetime --unique --name mdcontainer_start-%k /sbin/mdcontainer_start $env{DEVNAME}'"
LABEL="end_container"