diff options
author | Tejun Heo <tj@kernel.org> | 2009-09-11 14:26:40 +0200 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2009-09-11 14:33:30 +0200 |
commit | da6c5c720c52cc717124f8f0830b710ea6a092fd (patch) | |
tree | f54c880aec9289895721e707d4b22e456b277127 /block/blk-merge.c | |
parent | 80a761fd33cf812f771e212139157bf8f58d4b3f (diff) | |
download | linux-3.10-da6c5c720c52cc717124f8f0830b710ea6a092fd.tar.gz linux-3.10-da6c5c720c52cc717124f8f0830b710ea6a092fd.tar.bz2 linux-3.10-da6c5c720c52cc717124f8f0830b710ea6a092fd.zip |
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 <tj@kernel.org>
Cc: Niel Lambrechts <niel.lambrechts@gmail.com>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
Diffstat (limited to 'block/blk-merge.c')
-rw-r--r-- | block/blk-merge.c | 6 |
1 files changed, 0 insertions, 6 deletions
diff --git a/block/blk-merge.c b/block/blk-merge.c index 7c9ca01baa4..b0de8574fdc 100644 --- a/block/blk-merge.c +++ b/block/blk-merge.c @@ -380,12 +380,6 @@ static int attempt_merge(struct request_queue *q, struct request *req, if (blk_integrity_rq(req) != blk_integrity_rq(next)) return 0; - /* don't merge requests of different failfast settings */ - if (blk_failfast_dev(req) != blk_failfast_dev(next) || - blk_failfast_transport(req) != blk_failfast_transport(next) || - blk_failfast_driver(req) != blk_failfast_driver(next)) - return 0; - /* * If we are allowed to merge, then append bio list * from next to rq and release next. merge_requests_fn |