]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
[SCSI] Add detailed SCSI I/O errors
authorHannes Reinecke <hare@suse.de>
Tue, 18 Jan 2011 09:13:11 +0000 (10:13 +0100)
committerJames Bottomley <James.Bottomley@suse.de>
Sat, 12 Feb 2011 16:33:08 +0000 (10:33 -0600)
commit63583cca745f440167bf27877182dc13e19d4bcf
treec1eb3ec5d35cd71c6373e82992710c91f2cb8bdd
parent7a1e9d829f8bd821466c5ea834ad6f378740d2be
[SCSI] Add detailed SCSI I/O errors

Instead of just passing 'EIO' for any I/O error we should be
notifying the upper layers with more details about the cause
of this error.

Update the possible I/O errors to:

- ENOLINK: Link failure between host and target
- EIO: Retryable I/O error
- EREMOTEIO: Non-retryable I/O error
- EBADE: I/O error restricted to the I_T_L nexus

'Retryable' in this context means that an I/O error _might_ be
restricted to the I_T_L nexus (vulgo: path), so retrying on another
nexus / path might succeed.

'Non-retryable' in general refers to a target failure, so this
error will always be generated regardless of the I_T_L nexus
it was send on.

I/O errors restricted to the I_T_L nexus might be retried
on another nexus / path, but they should _not_ be queued
if no paths are available.

Signed-off-by: Hannes Reinecke <hare@suse.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/scsi_error.c
drivers/scsi/scsi_lib.c
include/scsi/scsi.h