scsi: st: New session only when Unit Attention for new tape

Currently the code starts new tape session when any Unit Attention
(UA) is seen when opening the device. This leads to incorrectly
clearing pos_unknown when the UA is for reset. Set new session only
when the UA is for a new tape.

Signed-off-by: Kai Mäkisara <Kai.Makisara@kolumbus.fi>
Link: https://lore.kernel.org/r/20241106095723.63254-4-Kai.Makisara@kolumbus.fi
Reviewed-by: John Meneghini <jmeneghi@redhat.com>
Tested-by: John Meneghini <jmeneghi@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
Kai Mäkisara 2024-11-06 11:57:23 +02:00 committed by Martin K. Petersen
parent 0b120edb37
commit a4550b28c8

View File

@ -991,7 +991,10 @@ static int test_ready(struct scsi_tape *STp, int do_wait)
scode = cmdstatp->sense_hdr.sense_key;
if (scode == UNIT_ATTENTION) { /* New media? */
new_session = 1;
if (cmdstatp->sense_hdr.asc == 0x28) { /* New media */
new_session = 1;
DEBC_printk(STp, "New tape session.");
}
if (attentions < MAX_ATTENTIONS) {
attentions++;
continue;