On 10/18/2017 04:58 AM, Martin K. Petersen wrote: > > Hannes, > >> + if (!strncmp(scmd->device->vendor, "EMC", 3) && >> + !strncmp(scmd->device->model, "SYMMETRIX", 9) && >> + (sshdr.asc == 0x44) && (sshdr.ascq == 0x0)) { >> + /* >> + * EMC Symmetrix returns 'Internal target failure' >> + * for a variety of internal issues, all of which >> + * can be recovered by retry. >> + */ >> + return ADD_TO_MLQUEUE; >> + } > > It's decidedly awful to have vendor/model-specific triggers in > scsi_error. > > What are the drawbacks of just always refiring on AC/0x44/ITF? > Hmm. 'Internal target failure' is not very descriptive, so it could mean anything. Hence the rather awkward approach. But I just checked with the qemu code, and that returns 0x44/0x00 only if some (internal) call returned with -ENOMEM. So I guess we're safe to always retry here. Cheers, Hannes -- Dr. Hannes Reinecke Teamlead Storage & Networking hare@xxxxxxx +49 911 74053 688 SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton HRB 21284 (AG Nürnberg)