From: Hannes Reinecke Date: Thu, 17 Sep 2009 15:00:26 +0000 (+0200) Subject: SCSI: Retry ADD_TO_MLQUEUE return value for EH commands X-Git-Tag: v2.6.31.5~46 X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=39335b18d59c1ae551d218e4f4a5f1a70aa98687;p=karo-tx-linux.git SCSI: Retry ADD_TO_MLQUEUE return value for EH commands commit 6e883b0e42739aa560133cfaf41be1138c51a500 upstream. A target reset when I/O is ongoing might result an eventual device offline, as scsi_eh_completed_normally() might return ADD_TO_MLQUEUE in addition to the advertised SUCCESS, FAILED, and NEEDS_RETRY. Which is unfortunate as scsi_send_eh_cmnd() will therefore map ADD_TO_MLQUEUE to FAILED instead of the more appropriate NEEDS_RETRY. Signed-off-by: Hannes Reinecke Signed-off-by: James Bottomley Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index a1689353d7fd..c253e9c051b2 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c @@ -721,6 +721,9 @@ static int scsi_send_eh_cmnd(struct scsi_cmnd *scmd, unsigned char *cmnd, case NEEDS_RETRY: case FAILED: break; + case ADD_TO_MLQUEUE: + rtn = NEEDS_RETRY; + break; default: rtn = FAILED; break;