===================================================================
@@ -142,7 +142,7 @@ int dm_exception_store_type_unregister(s
}
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;
@@ -160,6 +160,7 @@ int dm_exception_store_create(const char
}
tmp_store->type = type;
+ tmp_store->ti = ti;
r = type->ctr(tmp_store, 0, NULL);
if (r) {
===================================================================
@@ -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_
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);
===================================================================
@@ -615,7 +615,6 @@ static int snapshot_ctr(struct dm_target
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
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;
@@ -819,7 +818,7 @@ static void __invalidate_snapshot(struct
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)
@@ -1190,7 +1189,7 @@ static int __origin_write(struct list_he
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;
/*
===================================================================
@@ -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;
brassow Move target pointer from snapshot to exception store. Signed-off-by: Jonathan Brassow <jbrassow@redhat.com> -- dm-devel mailing list dm-devel@redhat.com https://www.redhat.com/mailman/listinfo/dm-devel