]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
scsi: st: Skip buffer flush for information ioctls
authorDavid Jeffery <djeffery@redhat.com>
Tue, 4 Nov 2025 15:46:23 +0000 (10:46 -0500)
committerMartin K. Petersen <martin.petersen@oracle.com>
Sat, 8 Nov 2025 17:21:10 +0000 (12:21 -0500)
commitd27418aaf8bcb21f3f9b54a57427a0ae4f025bf7
tree6633b9356db46e4242015d51a5d25d52b50a1945
parentb37d70c0df85e217a868ecdf535500ff926427ae
scsi: st: Skip buffer flush for information ioctls

With commit 9604eea5bd3a ("scsi: st: Add third party poweron reset
handling") some customer tape applications fail from being unable to
complete ioctls to verify ID information for the device when there has
been any type of reset event to their tape devices.

The st driver currently will fail all standard SCSI ioctls if a call to
flush_buffer() fails in st_ioctl(). This causes ioctls which otherwise
have no effect on tape state to succeed or fail based on events
unrelated to the requested ioctl.

This makes SCSI information ioctls unreliable after a reset even if no
buffering is in use. With a reset setting the pos_unknown field,
flush_buffer() will report failure and fail all ioctls. So any
application expecting to use ioctls to check the identify the device
will be unable to do so in such a state.

For SCSI information ioctls, avoid the need for a buffer flush and allow
the ioctls to execute regardless of buffer state.

Signed-off-by: David Jeffery <djeffery@redhat.com>
Tested-by: Laurence Oberman <loberman@redhat.com>
Acked-by: Kai Mäkisara <kai.makisara@kolumbus.fi>
Reviewed-by: John Meneghini <jmeneghi@redhat.com>
Tested-by: John Meneghini <jmeneghi@redhat.com>
Link: https://patch.msgid.link/20251104154709.6436-2-djeffery@redhat.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/scsi/st.c