]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
udev-rules: prevent systemd from mount devices before they are ready.
authorHarald Hoyer <harald@redhat.com>
Sun, 12 Aug 2012 22:00:21 +0000 (08:00 +1000)
committerNeilBrown <neilb@suse.de>
Thu, 27 Sep 2012 06:49:54 +0000 (16:49 +1000)
In the "add" uevent, ATTR{md/array_state} does not exist, so the next
rule does not kick in.

When an array is assembled incrementally, systemd might see it
before it is ready, try to mount it, fail, and give up.
Result is that array doesn't get mounted.

If we ask udev to tell systemd that it isn't ready yet in this
case, systemd waits until it is ready, and all are happy.

Signed-off-by: NeilBrown <neilb@suse.de>
udev-md-raid.rules

index 814c89720be4e2188c80601dbf17efb39d1ca301..da9d3c527542f98733c8f528023d6af0c1e87d42 100644 (file)
@@ -27,7 +27,7 @@ ENV{DEVTYPE}=="partition", GOTO="md_ignore_state"
 # container devices have a metadata version of e.g. 'external:ddf' and
 # never leave state 'inactive'
 ATTR{md/metadata_version}=="external:[A-Za-z]*", ATTR{md/array_state}=="inactive", GOTO="md_ignore_state"
-TEST!="md/array_state", GOTO="md_end"
+TEST!="md/array_state", ENV{SYSTEMD_READY}="0", GOTO="md_end"
 ATTR{md/array_state}=="|clear|inactive", ENV{SYSTEMD_READY}="0", GOTO="md_end"
 LABEL="md_ignore_state"