summaryrefslogtreecommitdiff
path: root/udev
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2012-03-12 08:59:55 +0000
committerPeter Rajnoha <prajnoha@redhat.com>2012-03-12 08:59:55 +0000
commit2c2bb4a4587d1ef84171babdfae3ca4986e2c009 (patch)
treec431348b8c7dadcb696b8cee842183bc2aa1fa32 /udev
parentff58a4b0998e0dceb6d1e7aab6f44f18b85eedbb (diff)
downloadlvm2-2c2bb4a4587d1ef84171babdfae3ca4986e2c009.tar.gz
Detect the lvm binary path in lvmetad udev rules.
We can't use 'DM_SBIN_PATH'. This one is set only for DM devices but not for all block devices - the pvscan is run on all relevant block devices! This LVM_SBIN_PATH (as well as DM_SBIN_PATH) detection should be removed eventually but for upstream solution, we still have to do that as there are known cases where the binaries are put either in /sbin or /usr/sbin (some installation systems, initrd systems etc.).
Diffstat (limited to 'udev')
-rw-r--r--udev/69-dm-lvm-metad.rules7
1 files changed, 6 insertions, 1 deletions
diff --git a/udev/69-dm-lvm-metad.rules b/udev/69-dm-lvm-metad.rules
index d6e416954..d272e6e22 100644
--- a/udev/69-dm-lvm-metad.rules
+++ b/udev/69-dm-lvm-metad.rules
@@ -19,7 +19,12 @@ SUBSYSTEM!="block", GOTO="lvm_end"
# Device-mapper devices are processed only on change event or on supported synthesized event.
KERNEL=="dm-[0-9]*", ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="lvm_end"
+# Set proper sbin path, /sbin has higher priority than /usr/sbin.
+ENV{LVM_SBIN_PATH}="/sbin"
+TEST!="$env{LVM_SBIN_PATH}/lvm", ENV{LVM_SBIN_PATH}="/usr/sbin"
+TEST!="$env{LVM_SBIN_PATH}/lvm", GOTO="lvm_end"
+
# Only process devices already marked as a PV - this requires blkid to be called before.
-ENV{ID_FS_TYPE}=="LVM2_member|LVM1_member", RUN+="$env{DM_SBIN_PATH}/pvscan --cache --major $major --minor $minor"
+ENV{ID_FS_TYPE}=="LVM2_member|LVM1_member", RUN+="$env{LVM_SBIN_PATH}/lvm pvscan --cache --major $major --minor $minor"
LABEL="lvm_end"