]> sourceware.org Git - lvm2.git/commitdiff
Add skeleton for lvmetad udev rules - 69-dm-lvm-metad.rules.
authorPeter Rajnoha <prajnoha@redhat.com>
Fri, 24 Feb 2012 09:53:12 +0000 (09:53 +0000)
committerPeter Rajnoha <prajnoha@redhat.com>
Fri, 24 Feb 2012 09:53:12 +0000 (09:53 +0000)
Why using the order 69:

  - Storage processing in general happens in 60-persistent-storage.rules,
    including the blkid call that adds some usable information we can use
    for filtering and speedup (these rules are part of upstream udev and
    the order is preserved on most distros)

  - There's still some other storage-related processing done after
    60-persistent-storage.rules in general. These might add some detailed
    storage-related information we might use to filter devices effectively
    (e.g. MD udev rules, ...).

  - We need lvmetad rules to be processed before any consumers can use the
    output - so the metadata cache is ready soon enough (e.g. udisks rules).

  - There's no official (upstream udev) document about assigning the order,
    so this number is chosen in best belief it will suit all scenarios.

udev/69-dm-lvm-metad.rules [new file with mode: 0644]
udev/Makefile.in

diff --git a/udev/69-dm-lvm-metad.rules b/udev/69-dm-lvm-metad.rules
new file mode 100644 (file)
index 0000000..a4f52c3
--- /dev/null
@@ -0,0 +1,25 @@
+# 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"
+
+# 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"
+
+# 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 --lvmetad $major:$minor"
+
+LABEL="lvm_end"
index 44bdf114e4ff6289850891f796e4b3f4592f0cbb..4ace9108e6acedeb9a05bc27a76ae3d30a911ae0 100644 (file)
@@ -19,6 +19,10 @@ DM_RULES=10-dm.rules 13-dm-disk.rules 95-dm-notify.rules
 LVM_RULES=11-dm-lvm.rules
 DM_DIR=$(shell grep "\#define DM_DIR" $(top_srcdir)/libdm/misc/dm-ioctl.h | awk '{print $$3}')
 
+ifeq ("@BUILD_LVMETAD@", "yes")
+LVM_RULES+=69-dm-lvm-metad.rules
+endif
+
 ifeq ("@UDEV_HAS_BUILTIN_BLKID@", "yes")
        BLKID_RULE=IMPORT{builtin}=\"blkid\"
 else
This page took 0.033961 seconds and 5 git commands to generate.