diff options
Diffstat (limited to 'block/blk-core.c')
-rw-r--r-- | block/blk-core.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/block/blk-core.c b/block/blk-core.c index c973249d68cd..277134cb5d32 100644 --- a/block/blk-core.c +++ b/block/blk-core.c | |||
@@ -1474,6 +1474,11 @@ void blk_queue_bio(struct request_queue *q, struct bio *bio) | |||
1474 | */ | 1474 | */ |
1475 | blk_queue_bounce(q, &bio); | 1475 | blk_queue_bounce(q, &bio); |
1476 | 1476 | ||
1477 | if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) { | ||
1478 | bio_endio(bio, -EIO); | ||
1479 | return; | ||
1480 | } | ||
1481 | |||
1477 | if (bio->bi_rw & (REQ_FLUSH | REQ_FUA)) { | 1482 | if (bio->bi_rw & (REQ_FLUSH | REQ_FUA)) { |
1478 | spin_lock_irq(q->queue_lock); | 1483 | spin_lock_irq(q->queue_lock); |
1479 | where = ELEVATOR_INSERT_FLUSH; | 1484 | where = ELEVATOR_INSERT_FLUSH; |
@@ -1714,9 +1719,6 @@ generic_make_request_checks(struct bio *bio) | |||
1714 | */ | 1719 | */ |
1715 | blk_partition_remap(bio); | 1720 | blk_partition_remap(bio); |
1716 | 1721 | ||
1717 | if (bio_integrity_enabled(bio) && bio_integrity_prep(bio)) | ||
1718 | goto end_io; | ||
1719 | |||
1720 | if (bio_check_eod(bio, nr_sectors)) | 1722 | if (bio_check_eod(bio, nr_sectors)) |
1721 | goto end_io; | 1723 | goto end_io; |
1722 | 1724 | ||