diff options
Diffstat (limited to 'drivers/md/dm.c')
-rw-r--r-- | drivers/md/dm.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/md/dm.c b/drivers/md/dm.c index b5e56af8f85a..f4f7d35561ab 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c | |||
@@ -800,6 +800,15 @@ static int dm_request(request_queue_t *q, struct bio *bio) | |||
800 | int rw = bio_data_dir(bio); | 800 | int rw = bio_data_dir(bio); |
801 | struct mapped_device *md = q->queuedata; | 801 | struct mapped_device *md = q->queuedata; |
802 | 802 | ||
803 | /* | ||
804 | * There is no use in forwarding any barrier request since we can't | ||
805 | * guarantee it is (or can be) handled by the targets correctly. | ||
806 | */ | ||
807 | if (unlikely(bio_barrier(bio))) { | ||
808 | bio_endio(bio, bio->bi_size, -EOPNOTSUPP); | ||
809 | return 0; | ||
810 | } | ||
811 | |||
803 | down_read(&md->io_lock); | 812 | down_read(&md->io_lock); |
804 | 813 | ||
805 | disk_stat_inc(dm_disk(md), ios[rw]); | 814 | disk_stat_inc(dm_disk(md), ios[rw]); |