From 96ebf783308fc1bdb095992f8862a8613d752f9d Mon Sep 17 00:00:00 2001 From: David Zeuthen Date: Thu, 18 Jun 2009 12:59:43 -0400 Subject: [PATCH] Update udev rules - depend on udev >= 142 since that will pull in /sbin/blkid - avoid probing dm or md if it has been done already - don't create symlinks for dm --- configure.ac | 2 +- src/95-devkit-disks.rules | 35 +++++++++++++++++++---------------- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/configure.ac b/configure.ac index 07d496d..d5e5996 100644 --- a/configure.ac +++ b/configure.ac @@ -172,7 +172,7 @@ PKG_CHECK_MODULES(LIBATASMART, [libatasmart >= 0.5]) AC_SUBST(LIBATASMART_CFLAGS) AC_SUBST(LIBATASMART_LIBS) -PKG_CHECK_MODULES(LIBUDEV, [libudev >= 139]) +PKG_CHECK_MODULES(LIBUDEV, [libudev >= 142]) AC_SUBST(LIBUDEV_CFLAGS) AC_SUBST(LIBUDEV_LIBS) diff --git a/src/95-devkit-disks.rules b/src/95-devkit-disks.rules index 71e38f7..e339942 100644 --- a/src/95-devkit-disks.rules +++ b/src/95-devkit-disks.rules @@ -31,43 +31,43 @@ LABEL="probe_parttable_end" ############################################################################################################## -# pick up device-mapper data; this really should be done by rules installed +# pick up device-mapper data; this REALLY should be done by rules installed # by the device-mapper package # - KERNEL!="dm-*", GOTO="device_mapper_end" ACTION!="add|change", GOTO="device_mapper_end" IMPORT{program}="devkit-disks-dm-export %M %m" ENV{DKD_DM_NAME}!="?*", GOTO="device_mapper_end" -SYMLINK+="disk/by-id/dm-name-$env{DKD_DM_NAME}" -ENV{DKD_DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DKD_DM_UUID}" - ENV{DKD_DM_STATE}=="SUSPENDED", GOTO="device_mapper_end" ENV{DKD_DM_TARGET_TYPES}=="|*error*", GOTO="device_mapper_end" -IMPORT{program}="vol_id --export $tempnode" -OPTIONS="link_priority=-100" -ENV{DKD_DM_TARGET_TYPES}=="*snapshot-origin*", OPTIONS="link_priority=-90" -ENV{ID_FS_USAGE}=="filesystem|other|crypto", ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="disk/by-uuid/$env{ID_FS_UUID_ENC}" -ENV{ID_FS_USAGE}=="filesystem|other", ENV{ID_FS_LABEL_ENC}=="?*", SYMLINK+="disk/by-label/$env{ID_FS_LABEL_ENC}" +# avoid probing if it has already been done earlier +# +ENV{ID_FS_USAGE}!="", GOTO="device_mapper_end" +IMPORT{program}="/sbin/blkid -o udev -p $tempnode" LABEL="device_mapper_end" ############################################################################################################## -# pick up data from MD components; this really should be done by rules -# installed by mdadm or the kernel package +# pick up data from MD components; this REALLY should be done by rules installed +# by mdadm or the kernel package +# +ENV{ID_FS_TYPE}!="linux_raid_member", GOTO="md_end" + +# avoid probing if it has already been done earlier # -ENV{ID_FS_TYPE}=="linux_raid_member", IMPORT{program}="/sbin/mdadm --examine --export $tempnode" +ENV{MD_LEVEL}!="", GOTO="md_end" +IMPORT{program}="/sbin/mdadm --examine --export $tempnode" + +LABEL="md_end" ############################################################################################################## -# Check if disk is capable of ATA smart; this should probably be done by -# ata_id and usb_id +# Check if a disk is ATA SMART capable # - KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="usb", ENV{DEVTYPE}=="disk", IMPORT{program}="devkit-disks-probe-ata-smart $tempnode" KERNEL=="sd*[!0-9]", ATTR{removable}=="0", ENV{ID_BUS}=="scsi", ENV{DEVTYPE}=="disk", ENV{ID_VENDOR}=="ATA", IMPORT{program}="devkit-disks-probe-ata-smart $tempnode" @@ -90,7 +90,10 @@ SYSFS{idVendor}=="05e3", SYSFS{idProduct}=="070e", ENV{ID_INSTANCE}=="0:3", ENV{ # SYSFS{idVendor}=="05ac", SYSFS{idProduct}=="1209", ENV{DKD_PRESENTATION_ICON_NAME}="multimedia-player-ipod-white" +############################################################################################################## + # PC floppy drives +# KERNEL=="fd*", ENV{ID_DRIVE_FLOPPY}="1" # USB floppy drives -- 2.7.4