diff options
-rw-r--r-- | drivers/md/dm-exception-store.h | 5 | ||||
-rw-r--r-- | drivers/md/dm-snap-persistent.c | 16 | ||||
-rw-r--r-- | drivers/md/dm-snap-transient.c | 16 | ||||
-rw-r--r-- | drivers/md/dm-snap.c | 8 |
4 files changed, 29 insertions, 16 deletions
diff --git a/drivers/md/dm-exception-store.h b/drivers/md/dm-exception-store.h index 023a707..0a2e6e7 100644 --- a/drivers/md/dm-exception-store.h +++ b/drivers/md/dm-exception-store.h @@ -79,8 +79,9 @@ struct dm_exception_store_type { */ void (*drop_snapshot) (struct dm_exception_store *store); - int (*status) (struct dm_exception_store *store, status_type_t status, - char *result, unsigned int maxlen); + unsigned (*status) (struct dm_exception_store *store, + status_type_t status, char *result, + unsigned maxlen); /* * Return how full the snapshot is. diff --git a/drivers/md/dm-snap-persistent.c b/drivers/md/dm-snap-persistent.c index 3907c4c..1799205 100644 --- a/drivers/md/dm-snap-persistent.c +++ b/drivers/md/dm-snap-persistent.c @@ -688,11 +688,19 @@ static int persistent_ctr(struct dm_exception_store *store, return 0; } -static int persistent_status(struct dm_exception_store *store, - status_type_t status, char *result, - unsigned int maxlen) +static unsigned persistent_status(struct dm_exception_store *store, + status_type_t status, char *result, + unsigned maxlen) { - int sz = 0; + unsigned sz = 0; + + switch (status) { + case STATUSTYPE_INFO: + break; + case STATUSTYPE_TABLE: + DMEMIT(" %s P %llu", store->cow->name, + (unsigned long long)store->chunk_size); + } return sz; } diff --git a/drivers/md/dm-snap-transient.c b/drivers/md/dm-snap-transient.c index a883d6e..cde5aa5 100644 --- a/drivers/md/dm-snap-transient.c +++ b/drivers/md/dm-snap-transient.c @@ -81,11 +81,19 @@ static int transient_ctr(struct dm_exception_store *store, return 0; } -static int transient_status(struct dm_exception_store *store, - status_type_t status, char *result, - unsigned maxlen) +static unsigned transient_status(struct dm_exception_store *store, + status_type_t status, char *result, + unsigned maxlen) { - int sz = 0; + unsigned sz = 0; + + switch (status) { + case STATUSTYPE_INFO: + break; + case STATUSTYPE_TABLE: + DMEMIT(" %s N %llu", store->cow->name, + (unsigned long long)store->chunk_size); + } return sz; } diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c index 974916b..981a041 100644 --- a/drivers/md/dm-snap.c +++ b/drivers/md/dm-snap.c @@ -70,9 +70,6 @@ struct dm_snapshot { /* Origin writes don't trigger exceptions until this is set */ int active; - /* Used for display of table */ - char type; - mempool_t *pending_pool; atomic_t pending_exceptions_count; @@ -1166,9 +1163,8 @@ static int snapshot_status(struct dm_target *ti, status_type_t type, * make sense. */ DMEMIT("%s", snap->origin->name); - DMEMIT(" %s %s %llu", snap->store->cow->name, - snap->store->type->name, - (unsigned long long)snap->store->chunk_size); + snap->store->type->status(snap->store, type, result + sz, + maxlen - sz); break; } |