diff --git a/69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch b/69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch deleted file mode 100644 index cf18b39..0000000 --- a/69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch +++ /dev/null @@ -1,31 +0,0 @@ -From e8d52bf13bc4529172632c49c84a80e315741862 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Fri, 19 Aug 2016 16:19:55 +0200 -Subject: 69-dm-lvm-metad.rules: Do not process rules for multipath devices - -When the device is a multipath device lvm metad should not process -it; doing so will reset the 'SYSTEMD_READY' flag and the multipath -setup will not work correctly. - -References: bsc#990538, bsc#986734 - -Signed-off-by: Hannes Reinecke ---- - udev/69-dm-lvm-metad.rules.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/udev/69-dm-lvm-metad.rules.in b/udev/69-dm-lvm-metad.rules.in -index f0bfc1e..793a53d 100644 ---- a/udev/69-dm-lvm-metad.rules.in -+++ b/udev/69-dm-lvm-metad.rules.in -@@ -17,6 +17,7 @@ - SUBSYSTEM!="block", GOTO="lvm_end" - (LVM_EXEC_RULE) - -+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="lvm_end" - ENV{DM_UDEV_DISABLE_OTHER_RULES_FLAG}=="1", GOTO="lvm_end" - - # If the PV label got lost, inform lvmetad immediately. --- -2.6.6 - diff --git a/Import-ID_FS_XXX-variables-bnc909358.patch b/Import-ID_FS_XXX-variables-bnc909358.patch deleted file mode 100644 index dc8c1ec..0000000 --- a/Import-ID_FS_XXX-variables-bnc909358.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 41c91bba5f696c6b6571218fcbf8bef8b41aa9d9 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Wed, 25 Mar 2015 09:44:03 +0100 -Subject: [PATCH] 13-dm-disk.rules: Import ID_FS_XXX variables from udev - database -References: bnc#909358 - -If the disk is unavailable we need to import the existing ID_FS_XXX -variables from the database, otherwise the filesystem UUID won't -be set and the by-uuid symlink will disappear, leading to -intermittent boot failures. - -Signed-off-by: Hannes Reinecke ---- - -Index: LVM2.2.02.120/udev/13-dm-disk.rules.in -=================================================================== ---- LVM2.2.02.120.orig/udev/13-dm-disk.rules.in -+++ LVM2.2.02.120/udev/13-dm-disk.rules.in -@@ -17,15 +17,22 @@ ENV{DM_UDEV_DISABLE_DISK_RULES_FLAG}=="1 - SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}", OPTIONS+="string_escape=replace" - ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}", OPTIONS+="string_escape=replace" - --ENV{DM_SUSPENDED}=="1", GOTO="dm_end" -+ENV{DM_SUSPENDED}=="1", GOTO="dm_blkid_end" - ENV{DM_NR_VALID_PATHS}=="0", GOTO="dm_blkid_end" - ENV{DM_NOSCAN}=="1", GOTO="dm_watch" - ENV{DM_TARGET_TYPES}=="|*error*", GOTO="dm_end" - - (BLKID_RULE) - LABEL="dm_blkid_end" -+# For a suspended or otherwise unavailable device we -+# need to import the variables from the database, otherwise -+# a service interruption might occur -+ENV{ID_FS_TYPE}!="?*", IMPORT{db}="ID_FS_TYPE" -+ENV{ID_FS_USAGE}!="?*", IMPORT{db}="ID_FS_USAGE" -+ENV{ID_FS_UUID}!="?*", IMPORT{db}="ID_FS_UUID" -+ENV{ID_FS_UUID_ENC}!="?*", IMPORT{db}="ID_FS_UUID_ENC" -+ENV{ID_FS_VERSION}!="?*", IMPORT{db}="ID_FS_VERSION" - ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS+="link_priority=-100" --OPTIONS+="watch" - ENV{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}" diff --git a/device-mapper-dmsetup-export.patch b/device-mapper-dmsetup-export.patch deleted file mode 100644 index 23ff1ed..0000000 --- a/device-mapper-dmsetup-export.patch +++ /dev/null @@ -1,192 +0,0 @@ -From 74cfa0a04f51f0629093ac11fafb9c8aba881eee Mon Sep 17 00:00:00 2001 -From: Eric Ren -Date: Tue, 11 Apr 2017 10:58:56 +0800 -Subject: [PATCH] DM: add dmsetup export - -bsc#479104 - -Patch-refreshed-by: Eric Ren ---- - man/dmsetup.8_main | 16 ++++++- - tools/dmsetup.c | 124 +++++++++++++++++++++++++++++++++++++++++++++++++++++ - 2 files changed, 139 insertions(+), 1 deletion(-) - -diff --git a/man/dmsetup.8_main b/man/dmsetup.8_main -index 4421882..5a31f76 100644 ---- a/man/dmsetup.8_main -+++ b/man/dmsetup.8_main -@@ -97,7 +97,15 @@ dmsetup \(em low level logical volume management - .. - .CMD_LOAD - . --.HP -+. HP -+.B dmsetup -+.de CMD_EXPORT -+. BR export -+. RI [device_name] -+.. -+.CMD_EXPORT -+. -+. HP - .B dmsetup - .de CMD_LS - . ad l -@@ -564,6 +572,12 @@ Specify a one-line table directly on the command line. - See below for more information on the table format. - . - .HP -+.BR --export -+.IR export -+.br -+Outputs information in key/value format to be imported by other programs. -+. -+.HP - .BR --udevcookie - .IR cookie - .br -diff --git a/tools/dmsetup.c b/tools/dmsetup.c -index 5c5c14c..2b0aed6 100644 ---- a/tools/dmsetup.c -+++ b/tools/dmsetup.c -@@ -2231,6 +2231,129 @@ static int _status(CMD_ARGS) - return r; - } - -+static int _export(CMD_ARGS) -+{ -+ int r = 0; -+ struct dm_task *dmt = NULL; -+ void *next = NULL; -+ uint64_t start, length; -+ char *target_type = NULL; -+ char *params; -+ const char *name = NULL; -+ const char *old_name = NULL; -+ const char *uuid = NULL; -+ struct dm_info info; -+ struct dm_deps *deps; -+ -+ if (names) -+ name = names->name; -+ else if (argc == 2) -+ name = argv[1]; -+ old_name = name; -+ -+ if (!(dmt = dm_task_create(DM_DEVICE_STATUS))) -+ goto out; -+ -+ if (!_set_task_device(dmt, name, 0)) -+ goto out; -+ -+ if (!dm_task_run(dmt)) -+ goto out; -+ -+ if (!dm_task_get_info(dmt, &info) || !info.exists) -+ goto out; -+ -+ if (!name) -+ name = dm_task_get_name(dmt); -+ -+ uuid = dm_task_get_uuid(dmt); -+ printf("DM_NAME=%s\n", name); -+ -+ if ((uuid = dm_task_get_uuid(dmt)) && *uuid) -+ printf("DM_UUID=%s\n", uuid); -+ -+ if (!info.exists) { -+ printf("DM_STATE=NOTPRESENT\n"); -+ goto out; -+ } -+ -+ if (!name) -+ name = dm_task_get_name(dmt); -+ -+ uuid = dm_task_get_uuid(dmt); -+ printf("DM_NAME=%s\n", name); -+ -+ if ((uuid = dm_task_get_uuid(dmt)) && *uuid) -+ printf("DM_UUID=%s\n", uuid); -+ -+ if (!info.exists) { -+ printf("DM_STATE=NOTPRESENT\n"); -+ goto out; -+ } -+ -+ printf("DM_STATE=%s\n", -+ info.suspended ? "SUSPENDED" : -+ (info.read_only ? "READONLY" : "ACTIVE")); -+ -+ if (!info.live_table && !info.inactive_table) -+ printf("DM_TABLE_STATE=NONE\n"); -+ else -+ printf("DM_TABLE_STATE=%s%s%s\n", -+ info.live_table ? "LIVE" : "", -+ info.live_table && info.inactive_table ? "/" : "", -+ info.inactive_table ? "INACTIVE" : ""); -+ -+ if (info.open_count != -1) -+ printf("DM_OPENCOUNT=%d\n", info.open_count); -+ -+ printf("DM_LAST_EVENT_NR=%" PRIu32 "\n", info.event_nr); -+ -+ printf("DM_MAJOR=%d\n", info.major); -+ printf("DM_MINOR=%d\n", info.minor); -+ -+ if (info.target_count != -1) -+ printf("DM_TARGET_COUNT=%d\n", info.target_count); -+ -+ /* export all table types */ -+ next = dm_get_next_target(dmt, next, &start, &length, -+ &target_type, ¶ms); -+ if (target_type) { -+ printf("DM_TARGET_TYPES=%s", target_type); -+ while (next) { -+ next = dm_get_next_target(dmt, next, &start, &length, -+ &target_type, ¶ms); -+ if (target_type) -+ printf(",%s", target_type); -+ } -+ printf("\n"); -+ } -+ -+ dm_task_destroy(dmt); -+ -+ // bnc#707614, revert to the original name -+ -+ if (!(dmt = dm_task_create(DM_DEVICE_DEPS))) -+ goto out; -+ -+ name = old_name; -+ if (!_set_task_device(dmt, name, 0)) -+ goto out; -+ -+ if (!dm_task_run(dmt)) -+ goto out; -+ -+ if (!(deps = dm_task_get_deps(dmt))) -+ goto out; -+ -+ printf("DM_DEPS=%d\n", deps->count); -+ -+ r = 1; -+ out: -+ if (dmt) -+ dm_task_destroy(dmt); -+ return r; -+} -+ - /* Show target names and their version numbers */ - static int _targets(CMD_ARGS) - { -@@ -5903,6 +6026,7 @@ static struct command _dmsetup_commands[] = { - {"deps", "[-o ] [...]", 0, -1, 1, 0, _deps}, - {"stats", " [] [...]", 1, -1, 1, 1, _stats}, - {"status", "[...] [--noflush] [--target ]", 0, -1, 1, 0, _status}, -+ {"export", "[]", 0, -1, 1, 0, _export}, - {"table", "[...] [--target ] [--showkeys]", 0, -1, 1, 0, _status}, - {"wait", " [] [--noflush]", 0, 2, 0, 0, _wait}, - {"mknodes", "[...]", 0, -1, 1, 0, _mknodes}, --- -2.10.2 - diff --git a/device-mapper.changes b/device-mapper.changes index 0a0f321..3b09034 100644 --- a/device-mapper.changes +++ b/device-mapper.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Aug 18 09:53:39 UTC 2017 - mwilck@suse.com + +- Dropped udev rule patches (bsc#1054363) + * dropped udev_rules-update.diff + * dropped device-mapper-dmsetup-export.patch + * dropped udev-Check-for-DM_NR_VALID_PATHS.patch + * dropped Import-ID_FS_XXX-variables-bnc909358.patch + * dropped 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch + ------------------------------------------------------------------- Tue Aug 1 05:59:29 UTC 2017 - zren@suse.com diff --git a/device-mapper.spec b/device-mapper.spec index 6a201c2..a5a4740 100644 --- a/device-mapper.spec +++ b/device-mapper.spec @@ -71,16 +71,6 @@ Patch1010: dmeventd-fix-dso-name-wrong-compare.patch Patch1011: lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch #SUSE patches 2000+ for device mapper, udev rules -#bsc#479104,bnc#707253 -Patch2001: device-mapper-dmsetup-export.patch -#bnc#78902,bnc#789019,bnc#789020 -Patch2002: udev_rules-update.diff -#bnc#875233 -Patch2003: udev-Check-for-DM_NR_VALID_PATHS.patch -#bnc909358 -Patch2004: Import-ID_FS_XXX-variables-bnc909358.patch -#bnc#990538,bnc#986734 -Patch2005: 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch #bsc#1012973 Patch2006: simplify-special-case-for-md-in-69-dm-lvm-metadata.patch ### COMMON-PATCH-END ### @@ -102,11 +92,6 @@ Programs and man pages for configuring and using the device mapper. %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 -%patch2001 -p1 -%patch2002 -p1 -%patch2003 -p1 -%patch2004 -p1 -%patch2005 -p1 %patch2006 -p1 ### COMMON-PREP-END ### diff --git a/lvm2-clvm.changes b/lvm2-clvm.changes index 0a0f321..3b09034 100644 --- a/lvm2-clvm.changes +++ b/lvm2-clvm.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Aug 18 09:53:39 UTC 2017 - mwilck@suse.com + +- Dropped udev rule patches (bsc#1054363) + * dropped udev_rules-update.diff + * dropped device-mapper-dmsetup-export.patch + * dropped udev-Check-for-DM_NR_VALID_PATHS.patch + * dropped Import-ID_FS_XXX-variables-bnc909358.patch + * dropped 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch + ------------------------------------------------------------------- Tue Aug 1 05:59:29 UTC 2017 - zren@suse.com diff --git a/lvm2-clvm.spec b/lvm2-clvm.spec index 8c7cbe3..c159c7c 100644 --- a/lvm2-clvm.spec +++ b/lvm2-clvm.spec @@ -74,16 +74,6 @@ Patch1010: dmeventd-fix-dso-name-wrong-compare.patch Patch1011: lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch #SUSE patches 2000+ for device mapper, udev rules -#bsc#479104,bnc#707253 -Patch2001: device-mapper-dmsetup-export.patch -#bnc#78902,bnc#789019,bnc#789020 -Patch2002: udev_rules-update.diff -#bnc#875233 -Patch2003: udev-Check-for-DM_NR_VALID_PATHS.patch -#bnc909358 -Patch2004: Import-ID_FS_XXX-variables-bnc909358.patch -#bnc#990538,bnc#986734 -Patch2005: 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch #bsc#1012973 Patch2006: simplify-special-case-for-md-in-69-dm-lvm-metadata.patch ### COMMON-PATCH-END ### @@ -106,11 +96,6 @@ A daemon for using LVM2 Logival Volumes in a clustered environment. %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 -%patch2001 -p1 -%patch2002 -p1 -%patch2003 -p1 -%patch2004 -p1 -%patch2005 -p1 %patch2006 -p1 ### COMMON-PREP-END ### diff --git a/lvm2.changes b/lvm2.changes index 0a0f321..3b09034 100644 --- a/lvm2.changes +++ b/lvm2.changes @@ -1,3 +1,13 @@ +------------------------------------------------------------------- +Fri Aug 18 09:53:39 UTC 2017 - mwilck@suse.com + +- Dropped udev rule patches (bsc#1054363) + * dropped udev_rules-update.diff + * dropped device-mapper-dmsetup-export.patch + * dropped udev-Check-for-DM_NR_VALID_PATHS.patch + * dropped Import-ID_FS_XXX-variables-bnc909358.patch + * dropped 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch + ------------------------------------------------------------------- Tue Aug 1 05:59:29 UTC 2017 - zren@suse.com diff --git a/lvm2.spec b/lvm2.spec index 05560fb..b0d298a 100644 --- a/lvm2.spec +++ b/lvm2.spec @@ -82,16 +82,6 @@ Patch1010: dmeventd-fix-dso-name-wrong-compare.patch Patch1011: lvm2-lvmetad.service-add-Also-lvm2-lvmetad.socket.patch #SUSE patches 2000+ for device mapper, udev rules -#bsc#479104,bnc#707253 -Patch2001: device-mapper-dmsetup-export.patch -#bnc#78902,bnc#789019,bnc#789020 -Patch2002: udev_rules-update.diff -#bnc#875233 -Patch2003: udev-Check-for-DM_NR_VALID_PATHS.patch -#bnc909358 -Patch2004: Import-ID_FS_XXX-variables-bnc909358.patch -#bnc#990538,bnc#986734 -Patch2005: 69-dm-lvm-metad.rules-Do-not-process-rules-for-multi.patch #bsc#1012973 Patch2006: simplify-special-case-for-md-in-69-dm-lvm-metadata.patch ### COMMON-PATCH-END ### @@ -123,11 +113,6 @@ Volume Manager. %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 -%patch2001 -p1 -%patch2002 -p1 -%patch2003 -p1 -%patch2004 -p1 -%patch2005 -p1 %patch2006 -p1 ### COMMON-PREP-END ### diff --git a/udev-Check-for-DM_NR_VALID_PATHS.patch b/udev-Check-for-DM_NR_VALID_PATHS.patch deleted file mode 100644 index fa1e6e5..0000000 --- a/udev-Check-for-DM_NR_VALID_PATHS.patch +++ /dev/null @@ -1,49 +0,0 @@ -From b8354ac161b5ab8a4f5842201d7ee69f5089c6dc Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Thu, 12 Jun 2014 17:07:31 +0200 -Subject: [PATCH] udev: Check for DM_NR_VALID_PATHS - -When the device becomes inaccessible we must not run any program -requiring disk access, as this will stall and cause udev to -eventually timeout this event. - -So check for DM_NR_VALID_PATHS before calling these programs. - -References: bnc#875233 - -Signed-off-by: Hannes Reinecke ---- - udev/10-dm.rules.in | 1 - - udev/13-dm-disk.rules.in | 2 ++ - udev/69-dm-lvm-metad.rules.in | 1 + - 3 files changed, 3 insertions(+), 1 deletion(-) - -Index: LVM2.2.02.152/udev/13-dm-disk.rules.in -=================================================================== ---- LVM2.2.02.152.orig/udev/13-dm-disk.rules.in -+++ LVM2.2.02.152/udev/13-dm-disk.rules.in -@@ -18,10 +18,12 @@ SYMLINK+="disk/by-id/dm-name-$env{DM_NAM - ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}", OPTIONS+="string_escape=replace" - - ENV{DM_SUSPENDED}=="1", GOTO="dm_end" -+ENV{DM_NR_VALID_PATHS}=="0", GOTO="dm_blkid_end" - ENV{DM_NOSCAN}=="1", GOTO="dm_watch" - ENV{DM_TARGET_TYPES}=="|*error*", GOTO="dm_end" - - (BLKID_RULE) -+LABEL="dm_blkid_end" - ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS+="link_priority=-100" - OPTIONS+="watch" - ENV{DM_TARGET_TYPES}=="*snapshot-origin*", OPTIONS+="link_priority=-90" -Index: LVM2.2.02.152/udev/69-dm-lvm-metad.rules.in -=================================================================== ---- LVM2.2.02.152.orig/udev/69-dm-lvm-metad.rules.in -+++ LVM2.2.02.152/udev/69-dm-lvm-metad.rules.in -@@ -47,6 +47,7 @@ ENV{ID_FS_UUID_ENC}=="?*", SYMLINK+="dis - - # DM device: - KERNEL!="dm-[0-9]*", GOTO="next" -+KERNEL=="dm-[0-9]*", ENV{DM_NR_VALID_PATHS}=="0", GOTO="lvm_end" - ENV{DM_UDEV_PRIMARY_SOURCE_FLAG}=="1", ENV{DM_ACTIVATION}=="1", GOTO="lvm_scan" - GOTO="lvm_end" - diff --git a/udev_rules-update.diff b/udev_rules-update.diff deleted file mode 100644 index c7c7641..0000000 --- a/udev_rules-update.diff +++ /dev/null @@ -1,56 +0,0 @@ -From 68b91b24d8743129b971b047e1189d6f6e772b15 Mon Sep 17 00:00:00 2001 -From: Hannes Reinecke -Date: Tue, 25 Jul 2017 22:19:10 +0800 -Subject: [PATCH] update lvm udev rules - -References: bnc#78902 bnc#789019 bnc#789020 - -Refrshed-by: Eric Ren ---- - udev/10-dm.rules.in | 4 ++++ - udev/13-dm-disk.rules.in | 9 ++++++--- - 2 files changed, 10 insertions(+), 3 deletions(-) - -diff --git a/udev/10-dm.rules.in b/udev/10-dm.rules.in -index b4fa52a..166dd3d 100644 ---- a/udev/10-dm.rules.in -+++ b/udev/10-dm.rules.in -@@ -115,6 +115,10 @@ TEST=="dm", ENV{DM_NAME}="$attr{dm/name}", ENV{DM_UUID}="$attr{dm/uuid}", ENV{DM - TEST!="dm", IMPORT{program}="(DM_EXEC)/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o name,uuid,suspended" - ENV{DM_SUSPENDED}!="?*", IMPORT{program}="(DM_EXEC)/dmsetup info -j %M -m %m -c --nameprefixes --noheadings --rows -o suspended" - -+# dmsetup export is a SUSE extension to dmsetup -+# it is required by some other udev rules in SUSE distro. -+IMPORT{program}="(DM_EXEC)/dmsetup export -j %M -m %m" -+ - # dmsetup tool provides suspended state information in textual - # form with values "Suspended"/"Active". We translate it to - # 0/1 respectively to be consistent with sysfs values. -diff --git a/udev/13-dm-disk.rules.in b/udev/13-dm-disk.rules.in -index 5355810..0e97e59 100644 ---- a/udev/13-dm-disk.rules.in -+++ b/udev/13-dm-disk.rules.in -@@ -14,14 +14,17 @@ 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}" -+SYMLINK+="disk/by-id/dm-name-$env{DM_NAME}", OPTIONS+="string_escape=replace" -+ENV{DM_UUID}=="?*", SYMLINK+="disk/by-id/dm-uuid-$env{DM_UUID}", OPTIONS+="string_escape=replace" - - ENV{DM_SUSPENDED}=="1", GOTO="dm_end" - ENV{DM_NOSCAN}=="1", GOTO="dm_watch" -+ENV{DM_TARGET_TYPES}=="|*error*", GOTO="dm_end" - - (BLKID_RULE) --ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS="link_priority=-100" -+ENV{DM_UDEV_LOW_PRIORITY_FLAG}=="1", OPTIONS+="link_priority=-100" -+OPTIONS+="watch" -+ENV{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}" - ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}" --- -2.10.2 -