Message ID | 20241106102316.63462-1-Kai.Makisara@kolumbus.fi (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | None | expand |
Reviewed-by: John Meneghini <jmeneghi@redhat.com> Tested-by: John Meneghini <jmeneghi@redhat.com> On 11/6/24 05:23, Kai Mäkisara wrote: > 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> > --- > drivers/scsi/st.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c > index c9038284bc89..e8ef27d7ef61 100644 > --- a/drivers/scsi/st.c > +++ b/drivers/scsi/st.c > @@ -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;
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index c9038284bc89..e8ef27d7ef61 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c @@ -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;
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> --- drivers/scsi/st.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)