*/
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.
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;
}
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;
}
/* 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;
* 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;
}