38 lines
1.6 KiB
Text
38 lines
1.6 KiB
Text
diff --git a/udev/69-dm-lvm-initcpio.rules.in b/udev/69-dm-lvm-initcpio.rules.in
|
|
--- a/udev/69-dm-lvm-initcpio.rules.in
|
|
+++ b/udev/69-dm-lvm-initcpio.rules.in
|
|
@@ -54,33 +54,7 @@ ACTION!="add", GOTO="lvm_end"
|
|
|
|
LABEL="lvm_scan"
|
|
|
|
-ENV{SYSTEMD_READY}="1"
|
|
-
|
|
-# pvscan will check if this device completes a VG,
|
|
-# i.e. all PVs in the VG are now present with the
|
|
-# arrival of this PV. If so, it prints to stdout:
|
|
-# LVM_VG_NAME_COMPLETE='foo'
|
|
-#
|
|
-# When the VG is complete it can be activated, so
|
|
-# vgchange -aay <vgname> is run. It is run via
|
|
-# systemd since it can take longer to run than
|
|
-# udev wants to block when processing rules.
|
|
-# (if there are hundreds of LVs to activate,
|
|
-# the vgchange can take many seconds.)
|
|
-#
|
|
-# pvscan only reads the single device specified,
|
|
-# and uses temp files under /run/lvm to check if
|
|
-# other PVs in the VG are present.
|
|
-#
|
|
-# If event_activation=0 in lvm.conf, this pvscan
|
|
-# (using checkcomplete) will do nothing, so that
|
|
-# no event-based autoactivation will be happen.
|
|
-#
|
|
-# TODO: adjust the output of vgchange -aay so that
|
|
-# it's better suited to appearing in the journal.
|
|
-
|
|
-IMPORT{program}="(LVM_EXEC)/lvm pvscan --cache --listvg --checkcomplete --vgonline --udevoutput --journal=output $env{DEVNAME}"
|
|
-ENV{LVM_VG_NAME_COMPLETE}=="?*", RUN+="/usr/bin/systemd-run -r --no-block --property DefaultDependencies=no --unit lvm-activate-$env{LVM_VG_NAME_COMPLETE} (LVM_EXEC)/lvm vgchange -aay --nohints $env{LVM_VG_NAME_COMPLETE}"
|
|
+RUN+="(LVM_EXEC)/lvm pvscan --background --cache --activate ay --major $major --minor $minor", ENV{LVM_SCANNED}="1"
|
|
GOTO="lvm_end"
|
|
|
|
LABEL="lvm_end"
|