# Copyright (C) 2012 Red Hat, Inc. All rights reserved. # # This file is part of LVM2. # Udev rules for LVM. # # Scan all block devices having a PV label for LVM metadata. # Store this information in LVMetaD (the LVM metadata daemon) and maintain LVM # metadata state for improved performance by avoiding further scans while # running subsequent LVM commands or while using lvm2app library. # Also, notify LVMetaD about any relevant block device removal. # # This rule is essential for having the information in LVMetaD up-to-date. # It also requires blkid to be called on block devices before so only devices # used as LVM PVs are processed (ID_FS_TYPE="LVM2_member" or "LVM1_member"). SUBSYSTEM!="block", GOTO="lvm_end" (LVM_EXEC_RULE) # Only process devices already marked as a PV - this requires blkid to be called before. ENV{ID_FS_TYPE}!="LVM2_member|LVM1_member", GOTO="lvm_end" ACTION=="remove", GOTO="lvm_scan" ACTION=="change", KERNEL=="md[0-9]*", GOTO="lvm_scan" # If the PV is not a dm device, scan only after device addition (ADD event) KERNEL!="dm-[0-9]*", ACTION!="add", GOTO="lvm_end" # If the PV is a dm device, scan only after proper mapping activation (CHANGE event + DM_ACTIVATION=1) # or after a coldplug (event retrigger) with "add" event (ADD event + DM_ACTIVATION=1) KERNEL=="dm-[0-9]*", ENV{DM_ACTIVATION}!="1", GOTO="lvm_end" LABEL="lvm_scan" RUN+="(LVM_EXEC)/lvm pvscan --cache --activate ay --major $major --minor $minor" LABEL="lvm_end"