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