summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/snic/snic_scsi.c
diff options
context:
space:
mode:
authorLee Duncan <lduncan@suse.com>2018-05-16 03:25:24 +0200
committerMartin K. Petersen <martin.petersen@oracle.com>2018-05-18 18:22:48 +0200
commitbd81372065fa467e262150c70be885f47f9535df (patch)
treedfa782e8a1a792f76ca14dffb4b224c6174abebd /drivers/scsi/snic/snic_scsi.c
parentscsi: qlogicpti: Fix an error handling path in 'qpti_sbus_probe()' (diff)
downloadlinux-bd81372065fa467e262150c70be885f47f9535df.tar.xz
linux-bd81372065fa467e262150c70be885f47f9535df.zip
scsi: target: transport should handle st FM/EOM/ILI reads
When a tape drive is exported via LIO using the pscsi module, a read that requests more bytes per block than the tape can supply returns an empty buffer. This is because the pscsi pass-through target module sees the "ILI" illegal length bit set and thinks there is no reason to return the data. This is a long-standing transport issue, since it assumes that no data need be returned under a check condition, which isn't always the case for tape. Add in a check for tape reads with the ILI, EOM, or FM bits set, with a sense code of NO_SENSE, treating such cases as if the read succeeded. The layered tape driver then "does the right thing" when it gets such a response. Signed-off-by: Bodo Stroesser <bstroesser@ts.fujitsu.com> Signed-off-by: Lee Duncan <lduncan@suse.com> Reviewed-by: Hannes Reinecke <hare@suse.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/scsi/snic/snic_scsi.c')
0 files changed, 0 insertions, 0 deletions