]> sourceware.org Git - lvm2.git/commitdiff
udev: ignore LVs containing PVs 1170102018
authorDavid Teigland <teigland@redhat.com>
Thu, 8 Feb 2024 20:51:46 +0000 (14:51 -0600)
committerDavid Teigland <teigland@redhat.com>
Thu, 8 Feb 2024 20:51:46 +0000 (14:51 -0600)
If LVM LVs happen to contain PVs, they are passed to the lvm udev
rule for processing, where they should be ignored.  PVs on LVs
most likely belong to VM images, and don't belong to the host
which sees the LV.  It's unsafe for the host to use these PVs.
Without this change, the LV would be processed by pvscan which
would generally ignore it, either because of the devices file,
or because of the default lvm policy to not consider LVs as
potential PVs.  This change makes the udev rule consistent
with that policy and avoids the unnecessary system messages
produced when pvscan ignores the LV.

udev/69-dm-lvm.rules.in

index ff15681456403f52c9743e54901372c9fafa0e54..f7a6eef8fa772f7bec37d375d954dc7daf1f672f 100644 (file)
@@ -10,6 +10,15 @@ SUBSYSTEM!="block", GOTO="lvm_end"
 
 ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="lvm_end"
 
+# Ignore PVs on LVs.
+# This is usually a case of an LV being used for a guest VM
+# image, where the guest is using lvm.  The host should
+# ignore lvm data from the guest and not attempt to scan or
+# activate guest PVs/LVs.  (To enable functions in this file
+# for PVs layered on LVs, set LVM_PVSCAN_ON_LVS="1" from a
+# custom udev rule.)
+ENV{ID_FS_TYPE}=="LVM2_member", ENV{DM_UUID}=="LVM-?*", ENV{LVM_PVSCAN_ON_LVS}!="1", GOTO="lvm_end"
+
 # Only process devices already marked as a PV - this requires blkid to be called before.
 ENV{ID_FS_TYPE}!="LVM2_member", GOTO="lvm_end"
 ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="lvm_end"
This page took 0.033588 seconds and 5 git commands to generate.