Alexander Atanasov 066c5b46b6 scsi: core: Always send batch on reset or error handling command
In commit 8930a6c20791 ("scsi: core: add support for request batching") the
block layer bd->last flag was mapped to SCMD_LAST and used as an indicator
to send the batch for the drivers that implement this feature. However, the
error handling code was not updated accordingly.

scsi_send_eh_cmnd() is used to send error handling commands and request
sense. The problem is that request sense comes as a single command that
gets into the batch queue and times out. As a result the device goes
offline after several failed resets. This was observed on virtio_scsi
during a device resize operation.

[  496.316946] sd 0:0:4:0: [sdd] tag#117 scsi_eh_0: requesting sense
[  506.786356] sd 0:0:4:0: [sdd] tag#117 scsi_send_eh_cmnd timeleft: 0
[  506.787981] sd 0:0:4:0: [sdd] tag#117 abort

To fix this always set SCMD_LAST flag in scsi_send_eh_cmnd() and
scsi_reset_ioctl().

Fixes: 8930a6c20791 ("scsi: core: add support for request batching")
Cc: <stable@vger.kernel.org>
Signed-off-by: Alexander Atanasov <alexander.atanasov@virtuozzo.com>
Link: https://lore.kernel.org/r/20231215121008.2881653-1-alexander.atanasov@virtuozzo.com
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2023-12-18 21:09:41 -05:00
..
2023-11-02 14:05:18 -10:00
2023-11-07 16:56:10 -08:00
2023-11-07 08:14:57 -07:00
2023-11-01 14:46:51 -10:00
2023-11-01 14:46:51 -10:00
2023-11-07 20:45:12 +01:00
2023-11-03 18:56:51 -10:00
2023-10-30 19:09:55 -10:00
2023-11-09 13:47:52 -08:00
2023-11-10 14:59:30 -08:00
2023-10-31 18:32:51 -10:00
2023-11-03 15:44:25 -10:00
2023-10-31 17:44:17 -10:00
2023-11-04 16:25:36 -10:00
2023-11-02 15:20:30 -10:00
2023-11-09 14:18:42 -08:00
2023-11-09 13:37:28 -08:00
2023-11-10 12:22:14 -08:00
2023-10-30 19:09:55 -10:00
2023-11-09 13:47:52 -08:00
2023-11-03 10:07:39 -10:00
2023-11-05 18:45:32 -08:00
2023-11-06 15:06:06 -08:00
2023-11-09 13:37:28 -08:00
2023-11-02 14:40:51 -10:00
2023-11-10 09:19:46 -08:00
2023-11-04 16:20:36 -10:00
2023-11-10 12:22:14 -08:00
2023-11-03 19:06:12 -10:00
2023-11-01 14:46:51 -10:00
2023-11-03 16:00:42 -10:00
2023-11-08 18:47:07 -08:00
2023-10-30 13:14:27 +00:00
2023-11-05 18:49:40 -08:00
2023-10-25 16:50:11 +02:00
2023-11-03 10:07:39 -10:00
2023-11-03 19:10:41 -10:00
2023-11-10 11:44:38 -08:00
2023-11-09 13:47:52 -08:00
2023-11-02 15:13:50 -10:00
2023-11-10 09:19:46 -08:00
2023-11-03 16:00:42 -10:00
2023-11-04 15:58:13 -10:00
2023-11-10 09:19:46 -08:00
2023-11-10 09:19:46 -08:00
2023-11-10 09:19:46 -08:00