multipath.rules: find_multipaths "smart" logic
[multipath-tools/.git] / kpartx / dm-parts.rules
1 # Rules for partitions created by kpartx
2
3 KERNEL!="dm-*", GOTO="dm_parts_end"
4 ACTION!="add|change", GOTO="dm_parts_end"
5 ENV{DM_UUID}!="part[0-9]*", GOTO="dm_parts_end"
6
7 # We must take care that symlinks don't get lost,
8 # even if blkid fails in 13-dm-disk.rules later.
9 #
10 # Fixme: we have currently no way to avoid calling blkid on
11 # partitions of broken mpath maps such as DM_NOSCAN.
12 # But when partition devices appear, kpartx has likely read
13 # the partition table shortly before, so odds are not bad
14 # that blkid will also succeed.
15
16 IMPORT{db}="ID_FS_USAGE"
17 IMPORT{db}="ID_FS_UUID_ENC"
18 IMPORT{db}="ID_FS_LABEL_ENC"
19 IMPORT{db}="ID_PART_ENTRY_NAME"
20 IMPORT{db}="ID_PART_ENTRY_UUID"
21 IMPORT{db}="ID_PART_ENTRY_SCHEME"
22
23 # Maps should take precedence over their members.
24 ENV{DM_UDEV_LOW_PRIORITY_FLAG}!="1", OPTIONS+="link_priority=50"
25
26 # Set some additional symlinks that typically exist for mpath
27 # path members, too, and should be overridden.
28 #
29 # kpartx_id is very robust, it works for suspended maps and maps
30 # with 0 dependencies. It sets DM_TYPE, DM_PART, DM_WWN
31 IMPORT{program}=="kpartx_id %M %m $env{DM_UUID}"
32
33 # DM_TYPE only has a reasonable value for partitions on multipath.
34 ENV{DM_UUID}=="*-mpath-*", ENV{DM_TYPE}=="?*", ENV{DM_SERIAL}=="?*" \
35         SYMLINK+="disk/by-id/$env{DM_TYPE}-$env{DM_SERIAL}-part$env{DM_PART}"
36 ENV{DM_WWN}=="?*", ENV{DM_PART}=="?*", \
37         SYMLINK+="disk/by-id/wwn-$env{DM_WWN}-part$env{DM_PART}"
38
39 LABEL="dm_parts_end"