diff --git a/SOURCES/dm_helper b/SOURCES/dm_helper new file mode 100755 index 0000000..c5c2811 --- /dev/null +++ b/SOURCES/dm_helper @@ -0,0 +1,5 @@ +#!/bin/sh +dminfo=$(/sbin/dmsetup info -c --noopencount --noheadings -j $1 -m $2) +echo DM_NAME=$(echo $dminfo | cut -d: -f 1) +echo DM_ID=$(echo $dminfo | cut -d: -f 8 ) +echo DM_NAME_LVM=$(echo $dminfo | cut -d: -f 1 | sed 's,-,/,g' | sed 's,//,-,g') diff --git a/udev-rules/60-persistent-storage.rules b/udev-rules/60-persistent-storage.rules index 340fc9c..32176b0 100644 --- a/udev-rules/60-persistent-storage.rules +++ b/udev-rules/60-persistent-storage.rules @@ -45,6 +45,8 @@ KERNEL=="*[!0-9]", IMPORT{program}="edd_ KERNEL=="*[!0-9]", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}" KERNEL=="*[0-9]", ENV{ID_EDD}=="?*", SYMLINK+="disk/by-id/edd-$env{ID_EDD}-part%n" -KERNEL=="dm-[0-9]*", ACTION=="add", PROGRAM="/sbin/dmsetup info -c --noopencount --noheadings -o name -j %M -m %m", SYMLINK="disk/by-name/%c" +KERNEL=="dm-[0-9]*", IMPORT{program}="dm_helper %M %m" +KERNEL=="dm-[0-9]*", SYMLINK+="disk/by-name/$env{DM_NAME}" +KERNEL=="dm-[0-9]*", ENV{DM_ID}=="LVM?*", SYMLINK+="$env{DM_NAME_LVM}" LABEL="persistent_storage_end" diff --git a/udev.spec b/udev.spec index 173c3ef..06c4190 100644 --- a/udev.spec +++ b/udev.spec @@ -37,6 +37,7 @@ BuildRequires: libsysfs-devel > 0.4.0-al Source0: %name-%version.tar Source1: %name-rules-%version-%release.tar Source5: udev.dvb-scripts.bz2 +Source6: dm_helper Source14: udevd.init Patch1: udev-088-create-floppy.patch @@ -44,6 +45,7 @@ Patch2: udev-0.46-alt-compile_warnings. Patch3: udev-091-uevent_seqnum-create.patch Requires: udev_static-addon +Requires: dmsetup Conflicts: linux-hotplug %description @@ -132,6 +134,7 @@ for i in extras/path_id extras/floppy ex %make udevdir=/dev EXTRAS=$i DESTDIR=%buildroot libdir=/%_lib usrlibdir=%_libdir install done +install -m 0755 %SOURCE6 %buildroot/%_lib/udev/ %__rm -f %buildroot%_sysconfdir/udev/udev.permissions %__rm -f %buildroot%_sysconfdir/udev/udev.rules.devfs