mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 18:51:56 -04:00
scsi,block: update SCSI to handle mixed merge failures
Update scsi_io_completion() such that it only fails requests till the next error boundary and retry the leftover. This enables block layer to merge requests with different failfast settings and still behave correctly on errors. Allow merge of requests of different failfast settings. As SCSI is currently the only subsystem which follows failfast status, there's no need to worry about other block drivers for now. Signed-off-by: Tejun Heo <[email protected]> Cc: Niel Lambrechts <[email protected]> Cc: James Bottomley <[email protected]> Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
parent
80a761fd33
commit
da6c5c720c
3 changed files with 4 additions and 21 deletions
|
|
@ -897,8 +897,10 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes)
|
|||
if (driver_byte(result) & DRIVER_SENSE)
|
||||
scsi_print_sense("", cmd);
|
||||
}
|
||||
blk_end_request_all(req, -EIO);
|
||||
scsi_next_command(cmd);
|
||||
if (blk_end_request_err(req, -EIO))
|
||||
scsi_requeue_command(q, cmd);
|
||||
else
|
||||
scsi_next_command(cmd);
|
||||
break;
|
||||
case ACTION_REPREP:
|
||||
/* Unprep the request and put it back at the head of the queue.
|
||||
|
|
|
|||
Loading…
Reference in a new issue