| | Date | Mon, 10 May 2010 15:33:26 -0700 | | From | Greg KH <> | | Subject | [115/117] [SCSI] Enable retries for SYNCRONIZE_CACHE commands to fix I/O error |
| |
2.6.33-stable review patch. If anyone has any objections, please let us know.
------------------ From: Hannes Reinecke <hare@suse.de>
commit c213e1407be6b04b144794399a91472e0ef92aec upstream.
Some arrays are giving I/O errors with ext3 filesystems when SYNCHRONIZE_CACHE gets a UNIT_ATTENTION. What is happening is that these commands have no retries, so the UNIT_ATTENTION causes the barrier to fail. We should be enable retries here to clear any transient error and allow the barrier to succeed.
Signed-off-by: Hannes Reinecke <hare@suse.de> Signed-off-by: James Bottomley <James.Bottomley@suse.de> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
--- drivers/scsi/sd.c | 1 + 1 file changed, 1 insertion(+) --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -1039,6 +1039,7 @@ static void sd_prepare_flush(struct requ { rq->cmd_type = REQ_TYPE_BLOCK_PC; rq->timeout = SD_TIMEOUT; + rq->retries = SD_MAX_RETRIES; rq->cmd[0] = SYNCHRONIZE_CACHE; rq->cmd_len = 10; }
|