[lvm-devel] dev-lvmguy-raid-takeover-reshape-resize - add dump.h
Heinz Mauelshagen
mauelsha at fedoraproject.org
Sat Jan 31 14:12:56 UTC 2015
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=0dbd1141e34a89b107158e29387ba826b1606541
Commit: 0dbd1141e34a89b107158e29387ba826b1606541
Parent: 645f4fad66ce5d649776a1ec98171616b5bec40e
Author: Heinz Mauelshagen <heinzm at redhat.com>
AuthorDate: Sat Jan 31 15:12:50 2015 +0100
Committer: Heinz Mauelshagen <heinzm at redhat.com>
CommitterDate: Sat Jan 31 15:12:50 2015 +0100
add dump.h
---
lib/metadata/dump.h | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 74 insertions(+), 0 deletions(-)
diff --git a/lib/metadata/dump.h b/lib/metadata/dump.h
new file mode 100644
index 0000000..2de9f86
--- /dev/null
+++ b/lib/metadata/dump.h
@@ -0,0 +1,74 @@
+/* FIXME: REMOVEME: development output */
+static void dump_area(const char *msg, struct lv_segment *seg, unsigned a)
+{
+ struct physical_volume *pv;
+ struct pv_segment *pvseg;
+ struct logical_volume *lv;
+
+ if (seg_type(seg, a) == AREA_PV) {
+ pv = seg_pv(seg, a);
+ pvseg = seg_pvseg(seg, a);
+
+ printf("pv[(%u]=%p", a, pv);
+ printf(" pe=%u", pvseg->pe);
+ printf(" len=%u\n", pvseg->len);
+
+ } else if (seg_type(seg, a) == AREA_LV) {
+ lv = seg_lv(seg, a);
+
+ printf("seg_lv[seg, %u]=%p", a, lv);
+ printf(" name=%s\n",lv->name);
+
+ } else
+ printf("v[%u]=AREA_UNASSIGNED\n", a);
+}
+
+static void dump_lv(const char *msg, struct logical_volume *lv);
+static void dump_seg(const char *msg, struct lv_segment *seg, int self)
+{
+ unsigned a;
+
+ printf("%s seg=%p", msg, seg);
+ printf(" name=%s", lvseg_name(seg));
+ printf(" lv->name=%s", seg->lv->name);
+ printf(" lv=%p", seg->lv);
+ printf(" le=%u", seg->le);
+ printf(" len=%u", seg->len);
+ printf(" status=%llu", (unsigned long long) seg->status);
+ printf(" stripe_size=%u", seg->stripe_size);
+ printf(" area_count=%u", seg->area_count);
+ printf(" area_len=%u", seg->area_len);
+ printf(" chunk_size=%u", seg->chunk_size);
+ printf(" region_size=%u\n", seg->region_size);
+
+ if (self)
+ return;
+
+ for (a = 0; a < seg->area_count; a++) {
+ if (seg->meta_areas && seg_metatype(seg, a) == AREA_LV)
+ dump_lv(msg, seg_metalv(seg, a));
+ else {
+ dump_area(msg, seg, a);
+ continue;
+ }
+
+ if (seg_type(seg, a) == AREA_LV)
+ dump_lv(msg, seg_lv(seg, a));
+ else
+ dump_area(msg, seg, a);
+ }
+}
+
+static void dump_lv(const char *msg, struct logical_volume *lv)
+{
+ struct lv_segment *seg;
+
+ printf("---> %s lv=%p <---\n", msg, lv);
+ printf("lv->name=%s", lv->name);
+ printf(" le_count=%u", lv->le_count);
+ printf(" size=%llu", (unsigned long long) lv->size);
+ printf(" status=%lX\n", lv->status);
+
+ dm_list_iterate_items(seg, &lv->segments)
+ dump_seg(msg, seg, 0);
+}
More information about the lvm-devel
mailing list