The snapshot and origin targets are incapable of handling barriers and need to indicate this. Signed-Off-By: Alasdair G Kergon Index: current-quilt-publish/drivers/md/dm-snap.c =================================================================== --- current-quilt-publish.orig/drivers/md/dm-snap.c 2006-01-06 15:01:55.000000000 +0000 +++ current-quilt-publish/drivers/md/dm-snap.c 2006-01-06 15:02:51.000000000 +0000 @@ -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; }