dm exception store: move dm_target pointer
Move target pointer from snapshot to exception store. Signed-off-by: Jonathan Brassow <jbrassow@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com>
This commit is contained in:
parent
493df71c64
commit
0cea9c7827
|
@ -137,7 +137,7 @@ int dm_exception_store_type_unregister(struct dm_exception_store_type *type)
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(dm_exception_store_type_unregister);
|
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)
|
struct dm_exception_store **store)
|
||||||
{
|
{
|
||||||
int r = 0;
|
int r = 0;
|
||||||
|
@ -155,6 +155,7 @@ int dm_exception_store_create(const char *type_name,
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp_store->type = type;
|
tmp_store->type = type;
|
||||||
|
tmp_store->ti = ti;
|
||||||
|
|
||||||
r = type->ctr(tmp_store, 0, NULL);
|
r = type->ctr(tmp_store, 0, NULL);
|
||||||
if (r) {
|
if (r) {
|
||||||
|
|
|
@ -95,6 +95,7 @@ struct dm_exception_store_type {
|
||||||
|
|
||||||
struct dm_exception_store {
|
struct dm_exception_store {
|
||||||
struct dm_exception_store_type *type;
|
struct dm_exception_store_type *type;
|
||||||
|
struct dm_target *ti;
|
||||||
|
|
||||||
struct dm_snapshot *snap;
|
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_register(struct dm_exception_store_type *type);
|
||||||
int dm_exception_store_type_unregister(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);
|
struct dm_exception_store **store);
|
||||||
void dm_exception_store_destroy(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 *ti, unsigned int argc, char **argv)
|
||||||
atomic_set(&s->pending_exceptions_count, 0);
|
atomic_set(&s->pending_exceptions_count, 0);
|
||||||
init_rwsem(&s->lock);
|
init_rwsem(&s->lock);
|
||||||
spin_lock_init(&s->pe_lock);
|
spin_lock_init(&s->pe_lock);
|
||||||
s->ti = ti;
|
|
||||||
|
|
||||||
/* Allocate hash table for COW data */
|
/* Allocate hash table for COW data */
|
||||||
if (init_hash_tables(s)) {
|
if (init_hash_tables(s)) {
|
||||||
|
@ -624,7 +623,7 @@ static int snapshot_ctr(struct dm_target *ti, unsigned int argc, char **argv)
|
||||||
goto bad3;
|
goto bad3;
|
||||||
}
|
}
|
||||||
|
|
||||||
r = dm_exception_store_create(argv[2], &s->store);
|
r = dm_exception_store_create(argv[2], ti, &s->store);
|
||||||
if (r) {
|
if (r) {
|
||||||
ti->error = "Couldn't create exception store";
|
ti->error = "Couldn't create exception store";
|
||||||
r = -EINVAL;
|
r = -EINVAL;
|
||||||
|
@ -820,7 +819,7 @@ static void __invalidate_snapshot(struct dm_snapshot *s, int err)
|
||||||
|
|
||||||
s->valid = 0;
|
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)
|
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;
|
goto next_snapshot;
|
||||||
|
|
||||||
/* Nothing to do if writing beyond end of 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;
|
goto next_snapshot;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -25,7 +25,6 @@ struct exception_table {
|
||||||
|
|
||||||
struct dm_snapshot {
|
struct dm_snapshot {
|
||||||
struct rw_semaphore lock;
|
struct rw_semaphore lock;
|
||||||
struct dm_target *ti;
|
|
||||||
|
|
||||||
struct dm_dev *origin;
|
struct dm_dev *origin;
|
||||||
struct dm_dev *cow;
|
struct dm_dev *cow;
|
||||||
|
|
Loading…
Reference in New Issue