On 14-01-24 03:35 AM, kai.makisara@xxxxxxxxxxx wrote:
Matthias Eble [psychotrahe@xxxxxxxxx] kirjoitti:
Hi list,
When a tape device is reserved with old reserve/release commands,
we see inquiry only works on the scsi generic device. For scsi tape devices
open() fails already:
# lsscsi -g | grep st15
[2:0:6:0] tape HP Ultrium 5-SCSI I5DZ /dev/st15 /dev/sg17
# sg_vpd -vvv /dev/st15
open /dev/st15 with flags=0x800
error opening file: /dev/st15: Input/output error
# sg_vpd -vvv /dev/nst15
open /dev/nst15 with flags=0x800
error opening file: /dev/nst15: Input/output error
# sg_vpd -vvv /dev/sg17
open /dev/sg17 with flags=0x800
Supported VPD pages VPD page:
inquiry cdb: 12 01 00 00 fc 00
duration=2 ms
inquiry: requested 252 bytes but got 22 bytes
[PQual=0 Peripheral device type: tape]
Supported VPD pages [sv]
Unit serial number [sn]
...
So: should open() fail on a reserved tape device?
SPC2 states that INQUIRY should never conflict.
Or does that only apply to the generic device?
Okay, it doesn't conflict, but open fails. A SunOS st man page I found
states, INQUIRY shall be possible with reserved devices.
Opening a st device does more than INQUIRY (TEST_UNIT_READY, READ_BLOCK_LIMITS,
MODE_SENSE). Can this explain what you see?
TEST UNIT READY is allowed in SPC-4 but there is a note
about it being disallowed (i.e. RESERVATION CONFLICT) in
SPC-2 and SPC-3. MODE SENSE conflicts with some types of
reservations and READ BLOCK LIMITS is allowed.
But EIO, arrrrr; that should be banned from the whole
storage subsystem. Either that or equate it to "I don't
have a clue why this failed". A Reservation Conflict is
a very useful piece of information that tells the user
twiddling knobs in sysfs ain't going to help.
And back to the original question; situations like these
are exactly why there needs to be pass-throughs (and
bsg should work as well as sg). A pass-through implements
a policy of "you asked for it, you got it, and with a
minimum of side effects".
Doug Gilbert
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html