From 5cf0b11dfeeebeca3459863c31e593c2d1c5a12b Mon Sep 17 00:00:00 2001 From: Jonathan Brassow Date: Thu, 2 Apr 2009 19:55:32 +0100 Subject: [PATCH] --- yaml --- r: 140167 b: refs/heads/master c: 0cea9c78270cdf1d2ad74ce0e083d5555a0842e8 h: refs/heads/master i: 140165: 4dadc0d004321a4c0cdf8182aeb027c3eee05a66 140163: 89e426a93145757a324d40be5e6671432ae8703c 140159: 8e0578365057642ce232c0d36c088f838e6c6aba v: v3 --- [refs] | 2 +- trunk/drivers/md/dm-exception-store.c | 3 ++- trunk/drivers/md/dm-exception-store.h | 3 ++- trunk/drivers/md/dm-snap.c | 7 +++---- trunk/drivers/md/dm-snap.h | 1 - 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/[refs] b/[refs] index 6ec9bd93c66b..b5055526cbe1 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 493df71c6420b211a68ae82b889c1e8a5fe701be +refs/heads/master: 0cea9c78270cdf1d2ad74ce0e083d5555a0842e8 diff --git a/trunk/drivers/md/dm-exception-store.c b/trunk/drivers/md/dm-exception-store.c index 8912a3637cae..fe0cfa677139 100644 --- a/trunk/drivers/md/dm-exception-store.c +++ b/trunk/drivers/md/dm-exception-store.c @@ -137,7 +137,7 @@ int dm_exception_store_type_unregister(struct dm_exception_store_type *type) } EXPORT_SYMBOL(dm_exception_store_type_unregister); -int dm_exception_store_create(const char *type_name, +int dm_exception_store_create(const char *type_name, struct dm_target *ti, struct dm_exception_store **store) { int r = 0; @@ -155,6 +155,7 @@ int dm_exception_store_create(const char *type_name, } tmp_store->type = type; + tmp_store->ti = ti; r = type->ctr(tmp_store, 0, NULL); if (r) { diff --git a/trunk/drivers/md/dm-exception-store.h b/trunk/drivers/md/dm-exception-store.h index 31377150080e..4b7f7d441f5f 100644 --- a/trunk/drivers/md/dm-exception-store.h +++ b/trunk/drivers/md/dm-exception-store.h @@ -95,6 +95,7 @@ struct dm_exception_store_type { struct dm_exception_store { struct dm_exception_store_type *type; + struct dm_target *ti; struct dm_snapshot *snap; @@ -147,7 +148,7 @@ static inline void dm_consecutive_chunk_count_inc(struct dm_snap_exception *e) int dm_exception_store_type_register(struct dm_exception_store_type *type); int dm_exception_store_type_unregister(struct dm_exception_store_type *type); -int dm_exception_store_create(const char *type_name, +int dm_exception_store_create(const char *type_name, struct dm_target *ti, struct dm_exception_store **store); void dm_exception_store_destroy(struct dm_exception_store *store); diff --git a/trunk/drivers/md/dm-snap.c b/trunk/drivers/md/dm-snap.c index be698f3a4ae4..4429c2a1d6fb 100644 --- a/trunk/drivers/md/dm-snap.c +++ b/trunk/drivers/md/dm-snap.c @@ -615,7 +615,6 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv) atomic_set(&s->pending_exceptions_count, 0); init_rwsem(&s->lock); spin_lock_init(&s->pe_lock); - s->ti = ti; /* Allocate hash table for COW data */ if (init_hash_tables(s)) { @@ -624,7 +623,7 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv) goto bad3; } - r = dm_exception_store_create(argv[2], &s->store); + r = dm_exception_store_create(argv[2], ti, &s->store); if (r) { ti->error = "Couldn't create exception store"; r = -EINVAL; @@ -820,7 +819,7 @@ static void __invalidate_snapshot(struct dm_snapshot *s, int err) s->valid = 0; - dm_table_event(s->ti->table); + dm_table_event(s->store->ti->table); } static void get_pending_exception(struct dm_snap_pending_exception *pe) @@ -1196,7 +1195,7 @@ static int __origin_write(struct list_head *snapshots, struct bio *bio) goto next_snapshot; /* Nothing to do if writing beyond end of snapshot */ - if (bio->bi_sector >= dm_table_get_size(snap->ti->table)) + if (bio->bi_sector >= dm_table_get_size(snap->store->ti->table)) goto next_snapshot; /* diff --git a/trunk/drivers/md/dm-snap.h b/trunk/drivers/md/dm-snap.h index 627be0f52c32..93cd8ee8997f 100644 --- a/trunk/drivers/md/dm-snap.h +++ b/trunk/drivers/md/dm-snap.h @@ -25,7 +25,6 @@ struct exception_table { struct dm_snapshot { struct rw_semaphore lock; - struct dm_target *ti; struct dm_dev *origin; struct dm_dev *cow;