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
h...@suse.de                                   +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)

Reply via email to