]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - block/elevator.c
Merge branch 'kmemleak' of git://linux-arm.org/linux-2.6
[karo-tx-linux.git] / block / elevator.c
index ca861927ba41b2dfc9ff80c139f6c8cc162fc251..6f2375339a996a794c17c96d0f32aa724fd1fae2 100644 (file)
@@ -100,6 +100,14 @@ int elv_rq_merge_ok(struct request *rq, struct bio *bio)
        if (bio_integrity(bio) != blk_integrity_rq(rq))
                return 0;
 
+       /*
+        * Don't merge if failfast settings don't match
+        */
+       if (bio_failfast_dev(bio)       != blk_failfast_dev(rq)         ||
+           bio_failfast_transport(bio) != blk_failfast_transport(rq)   ||
+           bio_failfast_driver(bio)    != blk_failfast_driver(rq))
+               return 0;
+
        if (!elv_iosched_allow_merge(rq, bio))
                return 0;