diff options
author | Anthony G. Basile <blueness@gentoo.org> | 2017-05-01 10:36:56 -0400 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2017-05-01 10:36:56 -0400 |
commit | 5e5a23d25855ad4b022e60e62430577784e712a5 (patch) | |
tree | d33ef03e50143128277395ade5e2e7b018dc1fd6 /sys-fs/eudev/files | |
parent | profiles: Restrict -cdda to amarok slot 4 (diff) | |
download | gentoo-5e5a23d25855ad4b022e60e62430577784e712a5.tar.gz gentoo-5e5a23d25855ad4b022e60e62430577784e712a5.tar.bz2 gentoo-5e5a23d25855ad4b022e60e62430577784e712a5.zip |
sys-fs/eudev: fix bug #616628
Package-Manager: Portage-2.3.3, Repoman-2.3.1
Diffstat (limited to 'sys-fs/eudev/files')
-rw-r--r-- | sys-fs/eudev/files/eudev-fix-disk-by-id.patch | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/sys-fs/eudev/files/eudev-fix-disk-by-id.patch b/sys-fs/eudev/files/eudev-fix-disk-by-id.patch new file mode 100644 index 000000000000..07bc0c518c62 --- /dev/null +++ b/sys-fs/eudev/files/eudev-fix-disk-by-id.patch @@ -0,0 +1,43 @@ +diff -ruN eudev-3.2.2-orig/rules/60-persistent-storage.rules eudev-3.2.2-new/rules/60-persistent-storage.rules +--- eudev-3.2.2-orig/rules/60-persistent-storage.rules 2016-12-11 16:41:58.000000000 +0100 ++++ eudev-3.2.2-new/rules/60-persistent-storage.rules 2017-04-26 23:14:04.197109882 +0200 +@@ -83,6 +83,9 @@ + # by-id (World Wide Name) + ENV{DEVTYPE}=="disk", ENV{ID_WWN_WITH_EXTENSION}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION}" + ENV{DEVTYPE}=="partition", ENV{ID_WWN_WITH_EXTENSION}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION}-part%n" ++#(Temporary) Compatibility rule for old broken WWNs in case some uses them: ++ENV{DEVTYPE}=="disk", ENV{ID_WWN_WITH_EXTENSION_REVERSED_DO_NOT_USE}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION_REVERSED_DO_NOT_USE}" ++ENV{DEVTYPE}=="partition", ENV{ID_WWN_WITH_EXTENSION_REVERSED_DO_NOT_USE}=="?*", SYMLINK+="disk/by-id/wwn-$env{ID_WWN_WITH_EXTENSION_REVERSED_DO_NOT_USE}-part%n" + + # by-partlabel/by-partuuid links (partition metadata) + ENV{ID_PART_ENTRY_UUID}=="?*", SYMLINK+="disk/by-partuuid/$env{ID_PART_ENTRY_UUID}" +diff -ruN eudev-3.2.2-orig/src/ata_id/ata_id.c eudev-3.2.2-new/src/ata_id/ata_id.c +--- eudev-3.2.2-orig/src/ata_id/ata_id.c 2016-11-17 22:14:19.000000000 +0100 ++++ eudev-3.2.2-new/src/ata_id/ata_id.c 2017-04-26 23:18:51.116127146 +0200 +@@ -645,10 +645,22 @@ + * All other values are reserved. + */ + word = identify.wyde[108]; +- if ((word & 0xf000) == 0x5000) +- printf("ID_WWN=0x%1$"PRIu64"x\n" +- "ID_WWN_WITH_EXTENSION=0x%1$"PRIu64"x\n", +- identify.octa[108/4]); ++ if ((word & 0xf000) == 0x5000){ ++ uint64_t wwn; ++ ++ wwn = identify.wyde[108]; ++ wwn <<= 16; ++ wwn |= identify.wyde[109]; ++ wwn <<= 16; ++ wwn |= identify.wyde[110]; ++ wwn <<= 16; ++ wwn |= identify.wyde[111]; /* Could possibly done nicer ? */ ++ printf("ID_WWN=0x%1$" PRIx64 "\n" ++ "ID_WWN_WITH_EXTENSION=0x%1$" PRIx64 "\n", ++ wwn); ++ printf("ID_WWN_WITH_EXTENSION_REVERSED_DO_NOT_USE=0x%" PRIu64 "x\n", ++ identify.octa[108/4]); ++ } + + /* from Linux's include/linux/ata.h */ + if (identify.wyde[0] == 0x848a || |