diff options
| author | Matthew Garrett <mjg@redhat.com> | 2010-05-17 12:11:21 -0400 |
|---|---|---|
| committer | Matthew Garrett <mjg@redhat.com> | 2010-05-17 12:11:21 -0400 |
| commit | a1e66dd0515c8cfa72b8e2a3834d59548cf84ba5 (patch) | |
| tree | e1e1edf210c8dde6edbdfa32ed6ff59ac553729b /drivers/scsi/scsi_error.c | |
| parent | d89d63a973986bf6c1d8b28ab62eb61491a3bb34 (diff) | |
| parent | 6c62673cf58516e1b82329ac90ebf3ff3f485672 (diff) | |
Merge branch 'x86-platform-next' into x86-platform
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 d45c69ca5737..7ad53fa42766 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
| @@ -302,7 +302,20 @@ static int scsi_check_sense(struct scsi_cmnd *scmd) | |||
| 302 | if (scmd->device->allow_restart && | 302 | if (scmd->device->allow_restart && |
| 303 | (sshdr.asc == 0x04) && (sshdr.ascq == 0x02)) | 303 | (sshdr.asc == 0x04) && (sshdr.ascq == 0x02)) |
| 304 | return FAILED; | 304 | return FAILED; |
| 305 | return SUCCESS; | 305 | |
| 306 | if (blk_barrier_rq(scmd->request)) | ||
| 307 | /* | ||
| 308 | * barrier requests should always retry on UA | ||
| 309 | * otherwise block will get a spurious error | ||
| 310 | */ | ||
| 311 | return NEEDS_RETRY; | ||
| 312 | else | ||
| 313 | /* | ||
| 314 | * for normal (non barrier) commands, pass the | ||
| 315 | * UA upwards for a determination in the | ||
| 316 | * completion functions | ||
| 317 | */ | ||
| 318 | return SUCCESS; | ||
| 306 | 319 | ||
| 307 | /* these three are not supported */ | 320 | /* these three are not supported */ |
| 308 | case COPY_ABORTED: | 321 | case COPY_ABORTED: |
