[dm-devel] [PATCH 10/12] dm-snapshot-merge-make-exceptions-in-other-snapshots-if-remapped-to-origin
Mike Snitzer
snitzer at redhat.com
Mon Oct 5 19:02:45 UTC 2009
From: Mikulas Patocka <mpatocka at redhat.com>
If dispatching write request to merging snapshot device directly to the origin
(because the chunk is not remapped or was already merged), we must make
exceptions in other snapshots.
Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
Reviewed-by: Mike Snitzer <snitzer at redhat.com>
---
drivers/md/dm-snap.c | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c
index 3be57ba..8060fe3 100644
--- a/drivers/md/dm-snap.c
+++ b/drivers/md/dm-snap.c
@@ -1488,6 +1488,11 @@ static int snapshot_merge_map(struct dm_target *ti, struct bio *bio,
bio->bi_bdev = s->origin->bdev;
+ if (bio_rw(bio) == WRITE) {
+ up_write(&s->lock);
+ return do_origin(s->origin, bio);
+ }
+
out_unlock:
up_write(&s->lock);
--
1.6.2.5
More information about the dm-devel
mailing list