dm snapshot: move cow ref from exception store to snap core
Store the reference to the snapshot cow device in the core snapshot code instead of each exception store. It can be accessed through the new function dm_snap_cow(). Exception stores should each now maintain a reference to their parent snapshot struct. This is cleaner and makes part of the forthcoming snapshot merge code simpler. Signed-off-by: Mike Snitzer <snitzer@redhat.com> Signed-off-by: Alasdair G Kergon <agk@redhat.com> Reviewed-by: Jonathan Brassow <jbrassow@redhat.com> Cc: Mikulas Patocka <mpatocka@redhat.com>
This commit is contained in:
committed by
Alasdair G Kergon
parent
985903bb3a
commit
fc56f6fbcc
@ -94,11 +94,11 @@ struct dm_exception_store_type {
|
||||
struct list_head list;
|
||||
};
|
||||
|
||||
struct dm_snapshot;
|
||||
|
||||
struct dm_exception_store {
|
||||
struct dm_exception_store_type *type;
|
||||
struct dm_target *ti;
|
||||
|
||||
struct dm_dev *cow;
|
||||
struct dm_snapshot *snap;
|
||||
|
||||
/* Size of data blocks saved - must be a power of 2 */
|
||||
unsigned chunk_size;
|
||||
@ -108,6 +108,11 @@ struct dm_exception_store {
|
||||
void *context;
|
||||
};
|
||||
|
||||
/*
|
||||
* Obtain the cow device used by a given snapshot.
|
||||
*/
|
||||
struct dm_dev *dm_snap_cow(struct dm_snapshot *snap);
|
||||
|
||||
/*
|
||||
* Funtions to manipulate consecutive chunks
|
||||
*/
|
||||
@ -173,6 +178,7 @@ int dm_exception_store_set_chunk_size(struct dm_exception_store *store,
|
||||
char **error);
|
||||
|
||||
int dm_exception_store_create(struct dm_target *ti, int argc, char **argv,
|
||||
struct dm_snapshot *snap,
|
||||
unsigned *args_used,
|
||||
struct dm_exception_store **store);
|
||||
void dm_exception_store_destroy(struct dm_exception_store *store);
|
||||
|
Reference in New Issue
Block a user