[lvm-devel] master - tools: refactor reporter code

Zdenek Kabelac zkabelac at fedoraproject.org
Fri Oct 24 14:40:07 UTC 2014


Gitweb:        http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=5bdf48b489660d1e99631fcb950c2094a9d158c2
Commit:        5bdf48b489660d1e99631fcb950c2094a9d158c2
Parent:        482e572e5de327ce3b8786215cf33e6d6223c543
Author:        Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate:    Wed Oct 22 14:30:33 2014 +0200
Committer:     Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Fri Oct 24 16:39:31 2014 +0200

tools: refactor reporter code

Use new libdm macro DM_LIST_HEAD_INIT().
Embeded 'free' segment type (so it's not needed in the list)
Drop assignments of 0,NULL since they are defaults.
---
 lib/report/report.c |   10 +++++-----
 tools/reporter.c    |   46 ++++++++++++++++++----------------------------
 2 files changed, 23 insertions(+), 33 deletions(-)

diff --git a/lib/report/report.c b/lib/report/report.c
index 445f603..ebf3b3f 100644
--- a/lib/report/report.c
+++ b/lib/report/report.c
@@ -1696,17 +1696,17 @@ static int _lvskipactivation_disp(struct dm_report *rh, struct dm_pool *mem,
 
 /* necessary for displaying something for PVs not belonging to VG */
 static struct format_instance _dummy_fid = {
-	.metadata_areas_in_use = { &(_dummy_fid.metadata_areas_in_use), &(_dummy_fid.metadata_areas_in_use) },
-	.metadata_areas_ignored = { &(_dummy_fid.metadata_areas_ignored), &(_dummy_fid.metadata_areas_ignored) },
+	.metadata_areas_in_use = DM_LIST_HEAD_INIT(_dummy_fid.metadata_areas_in_use),
+	.metadata_areas_ignored = DM_LIST_HEAD_INIT(_dummy_fid.metadata_areas_ignored),
 };
 
 static struct volume_group _dummy_vg = {
 	.fid = &_dummy_fid,
 	.name = "",
 	.system_id = (char *) "",
-	.pvs = { &(_dummy_vg.pvs), &(_dummy_vg.pvs) },
-	.lvs = { &(_dummy_vg.lvs), &(_dummy_vg.lvs) },
-	.tags = { &(_dummy_vg.tags), &(_dummy_vg.tags) },
+	.pvs = DM_LIST_HEAD_INIT(_dummy_vg.pvs),
+	.lvs = DM_LIST_HEAD_INIT(_dummy_vg.lvs),
+	.tags = DM_LIST_HEAD_INIT(_dummy_vg.tags),
 };
 
 static void *_obj_get_vg(void *obj)
diff --git a/tools/reporter.c b/tools/reporter.c
index c55d653..9688151 100644
--- a/tools/reporter.c
+++ b/tools/reporter.c
@@ -97,52 +97,42 @@ static int _do_pvsegs_sub_single(struct cmd_context *cmd,
 {
 	int ret = ECMD_PROCESSED;
 	struct lv_segment *seg = pvseg->lvseg;
-	struct lvinfo lvinfo;
+	struct lvinfo lvinfo = { .exists = 0 };
+
+	struct segment_type _freeseg_type = {
+		.cmd = cmd,
+		.name = "free",
+		.flags = SEG_VIRTUAL | SEG_CANNOT_BE_ZEROED,
+	};
 
 	struct volume_group _free_vg = {
 		.cmd = cmd,
 		.name = "",
-		.vgmem = NULL,
+		.pvs = DM_LIST_HEAD_INIT(_free_vg.pvs),
+		.lvs = DM_LIST_HEAD_INIT(_free_vg.lvs),
+		.tags = DM_LIST_HEAD_INIT(_free_vg.tags),
 	};
 
 	struct logical_volume _free_logical_volume = {
 		.vg = vg ?: &_free_vg,
 		.name = "",
-		.snapshot = NULL,
 		.status = VISIBLE_LV,
 		.major = -1,
 		.minor = -1,
+		.tags = DM_LIST_HEAD_INIT(_free_logical_volume.tags),
+		.segments = DM_LIST_HEAD_INIT(_free_logical_volume.segments),
+		.segs_using_this_lv = DM_LIST_HEAD_INIT(_free_logical_volume.segs_using_this_lv),
+		.snapshot_segs = DM_LIST_HEAD_INIT(_free_logical_volume.snapshot_segs),
 	};
 
 	struct lv_segment _free_lv_segment = {
 		.lv = &_free_logical_volume,
-		.le = 0,
-		.status = 0,
-		.stripe_size = 0,
-		.area_count = 0,
-		.area_len = 0,
-		.origin = NULL,
-		.cow = NULL,
-		.chunk_size = 0,
-		.region_size = 0,
-		.extents_copied = 0,
-		.log_lv = NULL,
-		.areas = NULL,
+		.segtype = &_freeseg_type,
+		.len = pvseg->len,
+		.tags = DM_LIST_HEAD_INIT(_free_lv_segment.tags),
+		.origin_list = DM_LIST_HEAD_INIT(_free_lv_segment.origin_list),
 	};
 
-	_free_lv_segment.segtype = get_segtype_from_string(cmd, "free");
-	_free_lv_segment.len = pvseg->len;
-	dm_list_init(&_free_vg.pvs);
-	dm_list_init(&_free_vg.lvs);
-	dm_list_init(&_free_vg.tags);
-	dm_list_init(&_free_lv_segment.tags);
-	dm_list_init(&_free_lv_segment.origin_list);
-	dm_list_init(&_free_logical_volume.tags);
-	dm_list_init(&_free_logical_volume.segments);
-	dm_list_init(&_free_logical_volume.segs_using_this_lv);
-	dm_list_init(&_free_logical_volume.snapshot_segs);
-
-	lvinfo.exists = 0;
 	if (seg && lv_info_needed)
 	    _get_lv_info_for_report(cmd, seg->lv, &lvinfo);
 




More information about the lvm-devel mailing list