projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
3eaf840
)
[PATCH] device-mapper snapshot: barriers not supported
author
Alasdair G Kergon
<
[email protected]
>
Wed, 1 Feb 2006 11:04:55 +0000
(
03:04
-0800)
committer
Linus Torvalds
<
[email protected]
>
Wed, 1 Feb 2006 16:53:11 +0000
(08:53 -0800)
The snapshot and origin targets are incapable of handling barriers and need to
indicate this.
Signed-off-by: Alasdair G Kergon <
[email protected]
>
Signed-off-by: Andrew Morton <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
drivers/md/dm-snap.c
patch
|
blob
|
history
diff --git
a/drivers/md/dm-snap.c
b/drivers/md/dm-snap.c
index ad9b61f16c5e2611ec459df55be929e656a3aad4..f3759dd7828e585ed81b0819e9908fbf546da543 100644
(file)
--- a/
drivers/md/dm-snap.c
+++ b/
drivers/md/dm-snap.c
@@
-792,6
+792,9
@@
static int snapshot_map(struct dm_target *ti, struct bio *bio,
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 *ti, struct bio *bio,
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;
}