4cad4c
From f60e89ea4c38c11a9d0c1e642c0a78faa32aca56 Mon Sep 17 00:00:00 2001
4cad4c
From: Joerg Steffens <joerg.steffens@bareos.com>
4cad4c
Date: Tue, 21 Nov 2017 12:21:49 +0100
4cad4c
Subject: [PATCH] udev-rules: make tape-changers also apprear in
4cad4c
 /dev/tape/by-path/
4cad4c
4cad4c
It is important to be able to access tape changer ("Medium Changers") by
4cad4c
persistant name.
4cad4c
While tape devices can be accessed via /dev/tape/by-id/ and
4cad4c
/dev/tape/by-path/, tape-changers could only be accessed by
4cad4c
/dev/tape/by-id/.
4cad4c
However, in some cases, especially when accessing Amazon Webservice
4cad4c
Storage Gateway VTLs (or accessing iSCSI VTLs in general?) this does not
4cad4c
work, as all tape devices and the tape changer have the same ENV{ID_SERIAL}.
4cad4c
The results is, that only the last device is available in
4cad4c
/dev/tape/by-id/, as the former devices have been overwritten.
4cad4c
4cad4c
As this behavior is hard to change without breaking consistentcy,
4cad4c
this additional device in /dev/tape/by-path/ can be used to access the medium changes.
4cad4c
The tape devices can also be accessed by this path.
4cad4c
4cad4c
The content of the directory will now look like:
4cad4c
4cad4c
  # SCSI tape device, rewind (unchanged)
4cad4c
  /dev/tape/by-path/$env{ID_PATH} -> ../../st*
4cad4c
4cad4c
  # SCSI tape device, no-rewind (unchanged)
4cad4c
  /dev/tape/by-path/$env{ID_PATH}-nst -> ../../nst*
4cad4c
4cad4c
  # SCSI tape changer device (newly added)
4cad4c
  /dev/tape/by-path/$env{ID_PATH}-changer -> ../../sg*
4cad4c
4cad4c
Tape devices and tape changer have different ID_PATHs.
4cad4c
SCSI tape changer get the suffix "-changer"
4cad4c
to make them better distinguishable from tape devices.
4cad4c
4cad4c
(cherry picked from commit 7f8ddf96a25162f06bd94a684cf700c128d18142)
4cad4c
4cad4c
Resolves: #1820112
4cad4c
---
4cad4c
 rules/60-persistent-storage-tape.rules | 3 +++
4cad4c
 1 file changed, 3 insertions(+)
4cad4c
4cad4c
diff --git a/rules/60-persistent-storage-tape.rules b/rules/60-persistent-storage-tape.rules
4cad4c
index b604864ee8..0575f308df 100644
4cad4c
--- a/rules/60-persistent-storage-tape.rules
4cad4c
+++ b/rules/60-persistent-storage-tape.rules
4cad4c
@@ -9,6 +9,9 @@ ENV{UDEV_DISABLE_PERSISTENT_STORAGE_RULES_FLAG}=="1", GOTO="persistent_storage_t
4cad4c
 SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{program}="scsi_id --sg-version=3 --export --whitelisted -d $devnode", \
4cad4c
   SYMLINK+="tape/by-id/scsi-$env{ID_SERIAL}"
4cad4c
 
4cad4c
+SUBSYSTEM=="scsi_generic", SUBSYSTEMS=="scsi", ATTRS{type}=="8", IMPORT{builtin}="path_id", \
4cad4c
+  SYMLINK+="tape/by-path/$env{ID_PATH}-changer"
4cad4c
+
4cad4c
 SUBSYSTEM!="scsi_tape", GOTO="persistent_storage_tape_end"
4cad4c
 
4cad4c
 KERNEL=="st*[0-9]|nst*[0-9]", ATTRS{ieee1394_id}=="?*", ENV{ID_SERIAL}="$attr{ieee1394_id}", ENV{ID_BUS}="ieee1394"