diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2010-05-12 19:20:04 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2010-05-12 19:20:04 -0400 |
commit | 1540c84b5ed657ed71dce06915bba461e6b09574 (patch) | |
tree | a449dc166800a1b0c429bb038bfc974e577eaf72 /drivers/scsi/scsi_error.c | |
parent | 1a3a403aa98b0ccabeb12abd7da90d33250ea36b (diff) | |
parent | 4640b4e7d9919e9629fe8456df94f71658431ef9 (diff) |
Merge branch '2.6.33.4' into rt/2.6.33
Conflicts:
Makefile
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'drivers/scsi/scsi_error.c')
-rw-r--r-- | drivers/scsi/scsi_error.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index 08ed506e6059..e46155b006dc 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
@@ -301,7 +301,20 @@ static int scsi_check_sense(struct scsi_cmnd *scmd) | |||
301 | if (scmd->device->allow_restart && | 301 | if (scmd->device->allow_restart && |
302 | (sshdr.asc == 0x04) && (sshdr.ascq == 0x02)) | 302 | (sshdr.asc == 0x04) && (sshdr.ascq == 0x02)) |
303 | return FAILED; | 303 | return FAILED; |
304 | return SUCCESS; | 304 | |
305 | if (blk_barrier_rq(scmd->request)) | ||
306 | /* | ||
307 | * barrier requests should always retry on UA | ||
308 | * otherwise block will get a spurious error | ||
309 | */ | ||
310 | return NEEDS_RETRY; | ||
311 | else | ||
312 | /* | ||
313 | * for normal (non barrier) commands, pass the | ||
314 | * UA upwards for a determination in the | ||
315 | * completion functions | ||
316 | */ | ||
317 | return SUCCESS; | ||
305 | 318 | ||
306 | /* these three are not supported */ | 319 | /* these three are not supported */ |
307 | case COPY_ABORTED: | 320 | case COPY_ABORTED: |