mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
e10f67e917
If a dm device is suspended, we can't run blkid on it. But earlier rules (e.g. 11-dm-parts.rules) might have imported previously scanned properties from the udev db, in particular if the device had been correctly set up beforehand (DM_UDEV_PRIMARY_SOURCE_FLAG==1). Symlinks for existing ID_FS_xyz properties must be preserved in this case. Otherwise lower-priority devices (such as multipath components) might take over the symlink temporarily. Likewise, we should't stop watching a temporarily suspended, but previously correctly configured dm device. Signed-off-by: Martin Wilck <mwilck@suse.com>
47 lines
1.9 KiB
Plaintext
47 lines
1.9 KiB
Plaintext
# Copyright (C) 2009 Red Hat, Inc. All rights reserved.
|
|
#
|
|
# This file is part of LVM2.
|
|
|
|
# Udev rules for device-mapper devices.
|
|
#
|
|
# These rules create symlinks in /dev/disk directory.
|
|
# Symlinks that depend on probing filesystem type,
|
|
# label and uuid are created only if the device is not
|
|
# suspended.
|
|
|
|
# "add" event is processed on coldplug only!
|
|
ACTION!="add|change", GOTO="dm_end"
|
|
ENV{DM_UDEV_RULES_VSN}!="?*", GOTO="dm_end"
|
|
ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1", GOTO="dm_end"
|
|
|
|
SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}"
|
|
ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}"
|
|
|
|
ENV{DM_SUSPENDED}=="1", ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", GOTO="dm_link"
|
|
ENV{DM_NOSCAN}=="1", ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", GOTO="dm_link"
|
|
ENV{DM_SUSPENDED}=="1", GOTO="dm_end"
|
|
ENV{DM_NOSCAN}=="1", GOTO="dm_watch"
|
|
|
|
(BLKID_RULE)
|
|
|
|
LABEL="dm_link"
|
|
ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS="link_priority=-100"
|
|
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}"
|
|
ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}"
|
|
ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", SYMLINK+="disk/by-partlabel/$env{ID_PART_ENTRY_NAME}"
|
|
ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_GPT_AUTO_ROOT}=="1", SYMLINK+="gpt-auto-root"
|
|
|
|
# Add inotify watch to track changes on this device.
|
|
# Using the watch rule is not optimal - it generates a lot of spurious
|
|
# and useless events whenever the device opened for read-write is closed.
|
|
# The best would be to generete the event directly in the tool changing
|
|
# relevant information so only relevant events will be processed
|
|
# (like creating a filesystem, changing filesystem label etc.).
|
|
#
|
|
# But let's use this until we have something better...
|
|
LABEL="dm_watch"
|
|
OPTIONS+="watch"
|
|
|
|
LABEL="dm_end"
|