From: Harald Hoyer Date: Sun, 12 Aug 2012 22:00:21 +0000 (+1000) Subject: udev-rules: prevent systemd from mount devices before they are ready. X-Git-Tag: mdadm-3.3-rc1~244 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=5b7e273aae7594369a1b3942c7d168c96c4768c0;p=thirdparty%2Fmdadm.git udev-rules: prevent systemd from mount devices before they are ready. 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 --- diff --git a/udev-md-raid.rules b/udev-md-raid.rules index 814c8972..da9d3c52 100644 --- a/udev-md-raid.rules +++ b/udev-md-raid.rules @@ -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"