X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=block%2Felevator.c;h=ed6f8f32d27ee8d09f5c3673852d416bad228862;hb=48e90761b570ff57f58b726229d229729949c5bb;hp=902dd1344d56dfb9000ba5701dbb250bcf835d27;hpb=009b9fc98ddd83f9139fdabb12c0d7a8535d5421;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); }