On 4/26/21 4:54 PM, Christoph Hellwig wrote: > On Fri, Apr 23, 2021 at 01:39:08PM +0200, Hannes Reinecke wrote: >> Remove the special handling for DRIVER_ERROR; if there is an error >> we should just fail the command and don't try anything clever. > > So this code comes from your commit 40bb61a77347 > "scsi_dh_alua: switch to scsi_execute_req_flags()" > > but that only switches from DRIVER_BUSY to DRIVER_ERROR, which in > retrospective looks rather fishy. Some kind of is busy handling here > actually does make sense to me, so maybe we should check for that > more sensibly? > Well, as this patchset nicely demonstrated, no device ever set DRIVER_BUSY, so that particular code was a bit of optimistic coding. But you are correct; we should check for negative errors, as those will be set prior to submission and most likely indicate a temporary error. (I'd rather _not_ latch on distinct errnos here; there's a deep call-chain involved and errors along the way might vary.) Cheers, Hannes -- Dr. Hannes Reinecke Kernel Storage Architect hare@xxxxxxx +49 911 74053 688 SUSE Software Solutions Germany GmbH, 90409 Nürnberg GF: F. Imendörffer, HRB 36809 (AG Nürnberg)