From: Alasdair G Kergon The snapshot and origin targets are incapable of handling barriers and need to indicate this. Signed-off-by: Alasdair G Kergon Signed-off-by: Andrew Morton --- drivers/md/dm-snap.c | 6 ++++++ 1 files changed, 6 insertions(+) diff -puN drivers/md/dm-snap.c~device-mapper-snapshot-barriers-not-supported drivers/md/dm-snap.c --- devel/drivers/md/dm-snap.c~device-mapper-snapshot-barriers-not-supported 2006-01-22 21:42:20.000000000 -0800 +++ devel-akpm/drivers/md/dm-snap.c 2006-01-22 21:42:20.000000000 -0800 @@ -792,6 +792,9 @@ static int snapshot_map(struct dm_target if (!s->valid) return -EIO; + if (unlikely(bio_barrier(bio))) + return -EOPNOTSUPP; + /* * Write to snapshot - higher level takes care of RW/RO * flags so we should only get this if we are @@ -1058,6 +1061,9 @@ static int origin_map(struct dm_target * struct dm_dev *dev = (struct dm_dev *) ti->private; bio->bi_bdev = dev->bdev; + if (unlikely(bio_barrier(bio))) + return -EOPNOTSUPP; + /* Only tell snapshots if this is a write */ return (bio_rw(bio) == WRITE) ? do_origin(dev, bio) : 1; } _