diff options
-rw-r--r-- | block/blk-merge.c | 6 | ||||
-rw-r--r-- | block/elevator.c | 13 | ||||
-rw-r--r-- | drivers/scsi/scsi_lib.c | 6 |
3 files changed, 4 insertions, 21 deletions
diff --git a/block/blk-merge.c b/block/blk-merge.c index 7c9ca01baa45..b0de8574fdc8 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, | |||
380 | if (blk_integrity_rq(req) != blk_integrity_rq(next)) | 380 | if (blk_integrity_rq(req) != blk_integrity_rq(next)) |
381 | return 0; | 381 | return 0; |
382 | 382 | ||
383 | /* don't merge requests of different failfast settings */ | ||
384 | if (blk_failfast_dev(req) != blk_failfast_dev(next) || | ||
385 | blk_failfast_transport(req) != blk_failfast_transport(next) || | ||
386 | blk_failfast_driver(req) != blk_failfast_driver(next)) | ||
387 | return 0; | ||
388 | |||
389 | /* | 383 | /* |
390 | * If we are allowed to merge, then append bio list | 384 | * If we are allowed to merge, then append bio list |
391 | * from next to rq and release next. merge_requests_fn | 385 | * from next to rq and release next. merge_requests_fn |
diff --git a/block/elevator.c b/block/elevator.c index 2d511f9105e1..ca861927ba41 100644 --- a/block/elevator.c +++ b/block/elevator.c | |||
@@ -100,19 +100,6 @@ int elv_rq_merge_ok(struct request *rq, struct bio *bio) | |||
100 | if (bio_integrity(bio) != blk_integrity_rq(rq)) | 100 | if (bio_integrity(bio) != blk_integrity_rq(rq)) |
101 | return 0; | 101 | return 0; |
102 | 102 | ||
103 | /* | ||
104 | * Don't merge if failfast settings don't match. | ||
105 | * | ||
106 | * FIXME: The negation in front of each condition is necessary | ||
107 | * because bio and request flags use different bit positions | ||
108 | * and the accessors return those bits directly. This | ||
109 | * ugliness will soon go away. | ||
110 | */ | ||
111 | if (!bio_failfast_dev(bio) != !blk_failfast_dev(rq) || | ||
112 | !bio_failfast_transport(bio) != !blk_failfast_transport(rq) || | ||
113 | !bio_failfast_driver(bio) != !blk_failfast_driver(rq)) | ||
114 | return 0; | ||
115 | |||
116 | if (!elv_iosched_allow_merge(rq, bio)) | 103 | if (!elv_iosched_allow_merge(rq, bio)) |
117 | return 0; | 104 | return 0; |
118 | 105 | ||
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index f3c40898fc7d..90c94da8baa4 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c | |||
@@ -897,8 +897,10 @@ void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) | |||
897 | if (driver_byte(result) & DRIVER_SENSE) | 897 | if (driver_byte(result) & DRIVER_SENSE) |
898 | scsi_print_sense("", cmd); | 898 | scsi_print_sense("", cmd); |
899 | } | 899 | } |
900 | blk_end_request_all(req, -EIO); | 900 | if (blk_end_request_err(req, -EIO)) |
901 | scsi_next_command(cmd); | 901 | scsi_requeue_command(q, cmd); |
902 | else | ||
903 | scsi_next_command(cmd); | ||
902 | break; | 904 | break; |
903 | case ACTION_REPREP: | 905 | case ACTION_REPREP: |
904 | /* Unprep the request and put it back at the head of the queue. | 906 | /* Unprep the request and put it back at the head of the queue. |