aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/md/dm-exception-store.h5
-rw-r--r--drivers/md/dm-snap-persistent.c16
-rw-r--r--drivers/md/dm-snap-transient.c16
-rw-r--r--drivers/md/dm-snap.c8
4 files changed, 29 insertions, 16 deletions
diff --git a/drivers/md/dm-exception-store.h b/drivers/md/dm-exception-store.h
index 023a707503c4..0a2e6e7f67b3 100644
--- a/drivers/md/dm-exception-store.h
+++ b/drivers/md/dm-exception-store.h
@@ -79,8 +79,9 @@ struct dm_exception_store_type {
79 */ 79 */
80 void (*drop_snapshot) (struct dm_exception_store *store); 80 void (*drop_snapshot) (struct dm_exception_store *store);
81 81
82 int (*status) (struct dm_exception_store *store, status_type_t status, 82 unsigned (*status) (struct dm_exception_store *store,
83 char *result, unsigned int maxlen); 83 status_type_t status, char *result,
84 unsigned maxlen);
84 85
85 /* 86 /*
86 * Return how full the snapshot is. 87 * Return how full the snapshot is.
diff --git a/drivers/md/dm-snap-persistent.c b/drivers/md/dm-snap-persistent.c
index 3907c4ce2ae5..1799205cd945 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,
688 return 0; 688 return 0;
689} 689}
690 690
691static int persistent_status(struct dm_exception_store *store, 691static unsigned persistent_status(struct dm_exception_store *store,
692 status_type_t status, char *result, 692 status_type_t status, char *result,
693 unsigned int maxlen) 693 unsigned maxlen)
694{ 694{
695 int sz = 0; 695 unsigned sz = 0;
696
697 switch (status) {
698 case STATUSTYPE_INFO:
699 break;
700 case STATUSTYPE_TABLE:
701 DMEMIT(" %s P %llu", store->cow->name,
702 (unsigned long long)store->chunk_size);
703 }
696 704
697 return sz; 705 return sz;
698} 706}
diff --git a/drivers/md/dm-snap-transient.c b/drivers/md/dm-snap-transient.c
index a883d6e658be..cde5aa558e6d 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,
81 return 0; 81 return 0;
82} 82}
83 83
84static int transient_status(struct dm_exception_store *store, 84static unsigned transient_status(struct dm_exception_store *store,
85 status_type_t status, char *result, 85 status_type_t status, char *result,
86 unsigned maxlen) 86 unsigned maxlen)
87{ 87{
88 int sz = 0; 88 unsigned sz = 0;
89
90 switch (status) {
91 case STATUSTYPE_INFO:
92 break;
93 case STATUSTYPE_TABLE:
94 DMEMIT(" %s N %llu", store->cow->name,
95 (unsigned long long)store->chunk_size);
96 }
89 97
90 return sz; 98 return sz;
91} 99}
diff --git a/drivers/md/dm-snap.c b/drivers/md/dm-snap.c
index 974916b9ea21..981a0413068f 100644
--- a/drivers/md/dm-snap.c
+++ b/drivers/md/dm-snap.c
@@ -70,9 +70,6 @@ struct dm_snapshot {
70 /* Origin writes don't trigger exceptions until this is set */ 70 /* Origin writes don't trigger exceptions until this is set */
71 int active; 71 int active;
72 72
73 /* Used for display of table */
74 char type;
75
76 mempool_t *pending_pool; 73 mempool_t *pending_pool;
77 74
78 atomic_t pending_exceptions_count; 75 atomic_t pending_exceptions_count;
@@ -1166,9 +1163,8 @@ static int snapshot_status(struct dm_target *ti, status_type_t type,
1166 * make sense. 1163 * make sense.
1167 */ 1164 */
1168 DMEMIT("%s", snap->origin->name); 1165 DMEMIT("%s", snap->origin->name);
1169 DMEMIT(" %s %s %llu", snap->store->cow->name, 1166 snap->store->type->status(snap->store, type, result + sz,
1170 snap->store->type->name, 1167 maxlen - sz);
1171 (unsigned long long)snap->store->chunk_size);
1172 break; 1168 break;
1173 } 1169 }
1174 1170