- Split off 59-scsi-sg_utils.rules to properly support multipathing (bnc#873151) Remove: 0001-59-scsi-sg_utils.rules-skip-symlinks-for-multipath-d.patch Add: 0001-Split-59-scsi-sg_utils.rules-for-multipath-support.patch - Update to official release 1.38 * Update documentation * Update to latest SPC * Minor fixes * Add: sg3_utils-1.38.tar.xz * Remove: sg3_utils-1.38b7r538.tar.xz * Remove: sg3_utils-1.38r546.patch * Remove: sg3_utils-1.38b12r556.patch - Use 59-scsi-sg3_utils from the rpm Remove: 59-scsi-sg3_utils.rules - Fixup 59-scsi-sg3_utils.rules to not provide symlinks on multipath device paths (bnc#872929) Add: 0001-59-scsi-sg_utils.rules-skip-symlinks-for-multipath-d.patch - Fixup 59-scsi_sg3_utils.rules to provide compability links for ata_id (bnc#866933) - Add 59-scsi-sg3_utils.rules (bnc#865494) - Update to inofficial release 1.38b12r556 (bnc#865494) * Add --inhex parameter to sg_inq * sg_inq: decode ASCII information vpd page * sg_inq: allow page=-1 to force std INQUIRY decoding OBS-URL: https://build.opensuse.org/request/show/229719 OBS-URL: https://build.opensuse.org/package/show/Base:System/sg3_utils?expand=0&rev=33
163 lines
9.8 KiB
Diff
163 lines
9.8 KiB
Diff
From fbae79a402a00ab9c228a31fd800f524d57960fe Mon Sep 17 00:00:00 2001
|
|
From: Hannes Reinecke <hare@suse.de>
|
|
Date: Thu, 10 Apr 2014 11:18:44 +0200
|
|
Subject: [PATCH] Split 59-scsi-sg_utils.rules for multipath support
|
|
|
|
The current rules file combines the setting of environment
|
|
variables and the generation of persistent symlinks.
|
|
The causes issues with multipathing, as multipath needs to have
|
|
access to the WWID to be able to decide if the device should be
|
|
handled by multipath (and hence no symlinks should be created)
|
|
or not (and udev can proceed with creating symlinks).
|
|
So this patch splits off the rules file in two sections,
|
|
55-scsi-sg3_id.rules and 58-scsi-sg3_symlink.rules.
|
|
This allows multipath rules to be inserted between them
|
|
to make the correct decision.
|
|
|
|
References: bnc#873151
|
|
|
|
Signed-off-by: Hannes Reinecke <hare@suse.de>
|
|
---
|
|
scripts/55-scsi-sg3_id.rules | 35 ++++++++++++++++++++++++++++
|
|
scripts/58-scsi-sg3_symlink.rules | 29 +++++++++++++++++++++++
|
|
scripts/59-scsi-sg3_utils.rules | 49 ---------------------------------------
|
|
3 files changed, 64 insertions(+), 49 deletions(-)
|
|
create mode 100644 scripts/55-scsi-sg3_id.rules
|
|
create mode 100644 scripts/58-scsi-sg3_symlink.rules
|
|
delete mode 100644 scripts/59-scsi-sg3_utils.rules
|
|
|
|
diff --git a/scripts/55-scsi-sg3_id.rules b/scripts/55-scsi-sg3_id.rules
|
|
new file mode 100644
|
|
index 0000000..2f99157
|
|
--- /dev/null
|
|
+++ b/scripts/55-scsi-sg3_id.rules
|
|
@@ -0,0 +1,35 @@
|
|
+# SCSI-ID mappings for sg3_utils
|
|
+
|
|
+ACTION=="remove", GOTO="sg3_utils_id_end"
|
|
+
|
|
+SUBSYSTEM!="block", GOTO="sg3_utils_id_end"
|
|
+
|
|
+# Import values for partitions
|
|
+ENV{DEVTYPE}=="partition", IMPORT{parent}="SCSI_*", ENV{ID_SCSI}="1"
|
|
+# SCSI INQUIRY values
|
|
+KERNEL=="sd*[!0-9]|sr*", IMPORT{program}="/usr/bin/sg_inq --export $tempnode", ENV{ID_SCSI}="1"
|
|
+# scsi_id compat mappings
|
|
+ENV{SCSI_VENDOR}=="?*", ENV{ID_VENDOR}="$env{SCSI_VENDOR}"
|
|
+ENV{SCSI_VENDOR_ENC}=="?*", ENV{ID_VENDOR_ENC}="$env{SCSI_VENDOR_ENC}"
|
|
+ENV{SCSI_MODEL}=="?*", ENV{ID_MODEL}="$env{SCSI_MODEL}"
|
|
+ENV{SCSI_MODEL_ENC}=="?*", ENV{ID_MODEL_ENC}="$env{SCSI_MODEL_ENC}"
|
|
+ENV{SCSI_REVISION}=="?*", ENV{ID_REVISION}="$env{SCSI_REVISION}"
|
|
+ENV{SCSI_TYPE}=="?*", ENV{ID_TYPE}="$env{SCSI_TYPE}"
|
|
+# SCSI EVPD page 0x80 values
|
|
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SCSI}=="1", IMPORT{program}="/usr/bin/sg_inq --export --page=sn $tempnode"
|
|
+# SCSI EVPD page 0x83 values
|
|
+KERNEL=="sd*[!0-9]|sr*", ENV{ID_SCSI}=="1", IMPORT{program}="/usr/bin/sg_inq --export --page=di $tempnode"
|
|
+
|
|
+# ID_WWN compat mapping
|
|
+ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{ID_WWN}!="?*", ENV{ID_WWN}="0x$env{SCSI_IDENT_LUN_NAA}"
|
|
+ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{ID_WWN_WITH_EXTENSION}!="?*", ENV{ID_WWN_WITH_EXTENSION}="0x$env{SCSI_IDENT_LUN_NAA}"
|
|
+
|
|
+# ata_id compability
|
|
+ENV{ID_SERIAL}!="?*", ENV{SCSI_VENDOR}=="ATA", ENV{ID_BUS}="ata", ENV{ID_ATA}="1", ENV{ID_SERIAL}="$env{SCSI_MODEL}_$env{SCSI_IDENT_LUN_VENDOR}"
|
|
+# Compat ID_SERIAL setting
|
|
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="3$env{SCSI_IDENT_LUN_NAA}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_NAA}"
|
|
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_EUI64}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="2$env{SCSI_IDENT_LUN_EUI64}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_EUI64}"
|
|
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_NAME}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="8$env{SCSI_IDENT_LUN_NAME}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_NAME}"
|
|
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_T10}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="1$env{SCSI_IDENT_LUN_T10}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_T10}"
|
|
+ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_VENDOR}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="0$env{SCSI_VENDOR}_$env{SCSI_MODEL}_$env{SCSI_IDENT_LUN_VENDOR}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_VENDOR}"
|
|
+LABEL="sg3_utils_id_end"
|
|
diff --git a/scripts/58-scsi-sg3_symlink.rules b/scripts/58-scsi-sg3_symlink.rules
|
|
new file mode 100644
|
|
index 0000000..a95cbcb
|
|
--- /dev/null
|
|
+++ b/scripts/58-scsi-sg3_symlink.rules
|
|
@@ -0,0 +1,29 @@
|
|
+# SCSI-ID symlinks for sg3_utils
|
|
+
|
|
+ACTION=="remove", GOTO="sg3_utils_symlink_end"
|
|
+
|
|
+SUBSYSTEM!="block", GOTO="sg3_utils_symlink_end"
|
|
+
|
|
+# Skip symlink generation for multipath
|
|
+ENV{DM_MULTIPATH_DEVICE_PATH}=="1", GOTO="sg3_utils_symlink_end"
|
|
+
|
|
+# Select which identifier to use per default
|
|
+# 0: vpd page 0x80 identifier
|
|
+ENV{SCSI_IDENT_SERIAL}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-S$env{SCSI_VENDOR}_$env{SCSI_MODEL}_$env{SCSI_IDENT_SERIAL}"
|
|
+# 1: NAA identifier (prefix 3)
|
|
+ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-3$env{SCSI_IDENT_LUN_NAA}"
|
|
+ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-3$env{SCSI_IDENT_LUN_NAA}-part%n"
|
|
+# 2: EUI-64 identifer (prefix 2)
|
|
+ENV{SCSI_IDENT_LUN_EUI64}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-2$env{SCSI_IDENT_LUN_EUI64}"
|
|
+ENV{SCSI_IDENT_LUN_EUI64}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-2$env{SCSI_IDENT_LUN_EUI64}-part%n"
|
|
+# 3: SCSI name identifier (prefix 8)
|
|
+ENV{SCSI_IDENT_LUN_NAME}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-8$env{SCSI_IDENT_LUN_NAME}"
|
|
+ENV{SCSI_IDENT_LUN_NAME}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-8$env{SCSI_IDENT_LUN_NAME}-part%n"
|
|
+# 4: T10 Vendor identifer (prefix 1)
|
|
+ENV{SCSI_IDENT_LUN_T10}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}"
|
|
+ENV{SCSI_IDENT_LUN_T10}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}-part%n"
|
|
+# 5: Vendor-specific identifier (prefix 0)
|
|
+ENV{SCSI_IDENT_LUN_VENDOR}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-0$env{SCSI_VENDOR}_$env{SCSI_MODEL}_$env{SCSI_IDENT_LUN_VENDOR}"
|
|
+ENV{SCSI_IDENT_LUN_VENDOR}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-0$env{SCSI_VENDOR}_$env{SCSI_MODEL}_$env{SCSI_IDENT_LUN_VENDOR}-part%n"
|
|
+
|
|
+LABEL="sg3_utils_symlink_end"
|
|
diff --git a/scripts/59-scsi-sg3_utils.rules b/scripts/59-scsi-sg3_utils.rules
|
|
deleted file mode 100644
|
|
index 71a3df0..0000000
|
|
--- a/scripts/59-scsi-sg3_utils.rules
|
|
+++ /dev/null
|
|
@@ -1,49 +0,0 @@
|
|
-# SCSI-ID mappings for sg3_utils
|
|
-
|
|
-ACTION=="remove", GOTO="sg3_utils_end"
|
|
-
|
|
-SUBSYSTEM!="block", GOTO="sg3_utils_end"
|
|
-
|
|
-# Import values for partitions
|
|
-ENV{DEVTYPE}=="partition", IMPORT{parent}="SCSI_*", ENV{ID_SCSI}="1"
|
|
-# SCSI INQUIRY values
|
|
-KERNEL=="sd*[!0-9]|sr*", IMPORT{program}="/usr/bin/sg_inq --export $tempnode", ENV{ID_SCSI}="1"
|
|
-# scsi_id compat mappings
|
|
-ENV{SCSI_VENDOR}=="?*", ENV{ID_VENDOR}="$env{SCSI_VENDOR}"
|
|
-ENV{SCSI_VENDOR_ENC}=="?*", ENV{ID_VENDOR_ENC}="$env{SCSI_VENDOR_ENC}"
|
|
-ENV{SCSI_MODEL}=="?*", ENV{ID_MODEL}="$env{SCSI_MODEL}"
|
|
-ENV{SCSI_MODEL_ENC}=="?*", ENV{ID_MODEL_ENC}="$env{SCSI_MODEL_ENC}"
|
|
-ENV{SCSI_REVISION}=="?*", ENV{ID_REVISION}="$env{SCSI_REVISION}"
|
|
-ENV{SCSI_TYPE}=="?*", ENV{ID_TYPE}="$env{SCSI_TYPE}"
|
|
-# SCSI EVPD page 0x80 values
|
|
-KERNEL=="sd*[!0-9]|sr*", ENV{ID_SCSI}=="1", IMPORT{program}="/usr/bin/sg_inq --export --page=sn $tempnode"
|
|
-ENV{SCSI_IDENT_SERIAL}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-S$env{SCSI_VENDOR}_$env{SCSI_MODEL}_$env{SCSI_IDENT_SERIAL}"
|
|
-# SCSI EVPD page 0x83 values
|
|
-KERNEL=="sd*[!0-9]|sr*", ENV{ID_SCSI}=="1", IMPORT{program}="/usr/bin/sg_inq --export --page=di $tempnode"
|
|
-# Select which identifier to use per default
|
|
-# 1: NAA identifier (prefix 3)
|
|
-ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-3$env{SCSI_IDENT_LUN_NAA}"
|
|
-ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-3$env{SCSI_IDENT_LUN_NAA}-part%n"
|
|
-ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{ID_WWN}!="?*", ENV{ID_WWN}="0x$env{SCSI_IDENT_LUN_NAA}"
|
|
-ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{ID_WWN_WITH_EXTENSION}!="?*", ENV{ID_WWN_WITH_EXTENSION}="0x$env{SCSI_IDENT_LUN_NAA}"
|
|
-# 2: EUI-64 identifer (prefix 2)
|
|
-ENV{SCSI_IDENT_LUN_EUI64}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-2$env{SCSI_IDENT_LUN_EUI64}"
|
|
-ENV{SCSI_IDENT_LUN_EUI64}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-2$env{SCSI_IDENT_LUN_EUI64}-part%n"
|
|
-# 3: SCSI name identifier (prefix 8)
|
|
-ENV{SCSI_IDENT_LUN_NAME}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-8$env{SCSI_IDENT_LUN_NAME}"
|
|
-ENV{SCSI_IDENT_LUN_NAME}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-8$env{SCSI_IDENT_LUN_NAME}-part%n"
|
|
-# 4: T10 Vendor identifer (prefix 1)
|
|
-ENV{SCSI_IDENT_LUN_T10}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}"
|
|
-ENV{SCSI_IDENT_LUN_T10}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-1$env{SCSI_IDENT_LUN_T10}-part%n"
|
|
-# 5: Vendor-specific identifier (prefix 0)
|
|
-ENV{SCSI_IDENT_LUN_VENDOR}=="?*", ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-id/scsi-0$env{SCSI_VENDOR}_$env{SCSI_MODEL}_$env{SCSI_IDENT_LUN_VENDOR}"
|
|
-ENV{SCSI_IDENT_LUN_VENDOR}=="?*", ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-id/scsi-0$env{SCSI_VENDOR}_$env{SCSI_MODEL}_$env{SCSI_IDENT_LUN_VENDOR}-part%n"
|
|
-# ata_id compability
|
|
-ENV{ID_SERIAL}!="?*", ENV{SCSI_VENDOR}=="ATA", ENV{ID_BUS}="ata", ENV{ID_ATA}="1", ENV{ID_SERIAL}="$env{SCSI_MODEL}_$env{SCSI_IDENT_LUN_VENDOR}"
|
|
-# Compat ID_SERIAL setting
|
|
-ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_NAA}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="3$env{SCSI_IDENT_LUN_NAA}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_NAA}"
|
|
-ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_EUI64}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="2$env{SCSI_IDENT_LUN_EUI64}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_EUI64}"
|
|
-ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_NAME}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="8$env{SCSI_IDENT_LUN_NAME}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_NAME}"
|
|
-ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_T10}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="1$env{SCSI_IDENT_LUN_T10}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_T10}"
|
|
-ENV{ID_SERIAL}!="?*", ENV{SCSI_IDENT_LUN_VENDOR}=="?*", ENV{ID_BUS}="scsi", ENV{ID_SERIAL}="0$env{SCSI_VENDOR}_$env{SCSI_MODEL}_$env{SCSI_IDENT_LUN_VENDOR}", ENV{ID_SERIAL_SHORT}="$env{SCSI_IDENT_LUN_VENDOR}"
|
|
-LABEL="sg3_utils_end"
|
|
--
|
|
1.8.1.4
|
|
|