X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=block%2Felevator.c;h=ed6f8f32d27ee8d09f5c3673852d416bad228862;hb=63d3a75d6f1fcf2f33e6abbe84e1f428c3586152;hp=902dd1344d56dfb9000ba5701dbb250bcf835d27;hpb=a177ba3b7a08beef3f0fe74efa0f90701891945a;p=linux-2.6-omap-h63xx.git diff --git a/block/elevator.c b/block/elevator.c index 902dd1344d5..ed6f8f32d27 100644 --- a/block/elevator.c +++ b/block/elevator.c @@ -86,6 +86,12 @@ int elv_rq_merge_ok(struct request *rq, struct bio *bio) if (rq->rq_disk != bio->bi_bdev->bd_disk || rq->special) return 0; + /* + * only merge integrity protected bio into ditto rq + */ + if (bio_integrity(bio) != blk_integrity_rq(rq)) + return 0; + if (!elv_iosched_allow_merge(rq, bio)) return 0; @@ -144,7 +150,7 @@ static struct elevator_type *elevator_get(const char *name) else sprintf(elv, "%s-iosched", name); - request_module(elv); + request_module("%s", elv); spin_lock(&elv_list_lock); e = elevator_find(name); }