Commit 8f032263 authored by Chauhan, Vijay's avatar Chauhan, Vijay Committed by James Bottomley

[SCSI] scsi_dh_rdac: Retry for NOT_READY(02/04/01) in rdac device handler

During device discovery read capacity fails with 0x020401 and sets the
device size to 0. As a reason any I/O submitted to this path gets
killed at sd_prep_fn with BLKPREP_KILL. This patch is to retry for
0x020401. NEED_RETRY in scsi_decide_disposition does not give
sufficient time for the device to become ready.
Signed-off-by: default avatarVijay Chauhan <vijay.chauhan@lsi.com>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
parent fa858456
...@@ -561,6 +561,12 @@ static int rdac_check_sense(struct scsi_device *sdev, ...@@ -561,6 +561,12 @@ static int rdac_check_sense(struct scsi_device *sdev,
struct rdac_dh_data *h = get_rdac_data(sdev); struct rdac_dh_data *h = get_rdac_data(sdev);
switch (sense_hdr->sense_key) { switch (sense_hdr->sense_key) {
case NOT_READY: case NOT_READY:
if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x01)
/* LUN Not Ready - Logical Unit Not Ready and is in
* the process of becoming ready
* Just retry.
*/
return ADD_TO_MLQUEUE;
if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x81) if (sense_hdr->asc == 0x04 && sense_hdr->ascq == 0x81)
/* LUN Not Ready - Storage firmware incompatible /* LUN Not Ready - Storage firmware incompatible
* Manual code synchonisation required. * Manual code synchonisation required.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment