[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[lvm-devel] [patch 4/7] Move repeated code to a separate function.



Copying code is terrible practice. The code is hard to change for anyone.
Because I need to change this code and don't want to copy the change to any
place, I moved it to a separate function.

Signed-off-by: Mikulas Patocka <mpatocka redhat com>

---
 lib/format1/import-export.c      |    6 +-----
 lib/format_pool/import_export.c  |   11 ++---------
 lib/format_text/import_vsn1.c    |    6 +-----
 lib/metadata/lv_manip.c          |   18 +++++++++++++-----
 lib/metadata/metadata-exported.h |    1 +
 5 files changed, 18 insertions(+), 24 deletions(-)

Index: LVM2.2.02.45/lib/format1/import-export.c
===================================================================
--- LVM2.2.02.45.orig/lib/format1/import-export.c	2009-05-19 22:12:14.000000000 +0200
+++ LVM2.2.02.45/lib/format1/import-export.c	2009-05-19 22:14:08.000000000 +0200
@@ -338,11 +338,7 @@ int import_lv(struct dm_pool *mem, struc
 	lv->size = lvd->lv_size;
 	lv->le_count = lvd->lv_allocated_le;
 
-	lv->snapshot = NULL;
-	dm_list_init(&lv->snapshot_segs);
-	dm_list_init(&lv->segments);
-	dm_list_init(&lv->tags);
-	dm_list_init(&lv->segs_using_this_lv);
+	lv_init(lv);
 
 	return 1;
 }
Index: LVM2.2.02.45/lib/format_pool/import_export.c
===================================================================
--- LVM2.2.02.45.orig/lib/format_pool/import_export.c	2009-05-19 22:12:14.000000000 +0200
+++ LVM2.2.02.45/lib/format_pool/import_export.c	2009-05-19 22:14:08.000000000 +0200
@@ -79,11 +79,7 @@ int import_pool_lvs(struct volume_group 
 	lv->name = NULL;
 	lv->le_count = 0;
 	lv->read_ahead = vg->cmd->default_settings.read_ahead;
-	lv->snapshot = NULL;
-	dm_list_init(&lv->snapshot_segs);
-	dm_list_init(&lv->segments);
-	dm_list_init(&lv->tags);
-	dm_list_init(&lv->segs_using_this_lv);
+	lv_init(lv);
 
 	dm_list_iterate_items(pl, pls) {
 		lv->size += pl->pd.pl_blocks;
@@ -108,10 +104,7 @@ int import_pool_lvs(struct volume_group 
 		} else {
 			lv->minor = -1;
 		}
-		lv->snapshot = NULL;
-		dm_list_init(&lv->snapshot_segs);
-		dm_list_init(&lv->segments);
-		dm_list_init(&lv->tags);
+		lv_init(lv);
 	}
 
 	lv->le_count = lv->size / POOL_PE_SIZE;
Index: LVM2.2.02.45/lib/format_text/import_vsn1.c
===================================================================
--- LVM2.2.02.45.orig/lib/format_text/import_vsn1.c	2009-05-19 22:12:14.000000000 +0200
+++ LVM2.2.02.45/lib/format_text/import_vsn1.c	2009-05-19 22:14:08.000000000 +0200
@@ -547,11 +547,7 @@ static int _read_lvnames(struct format_i
 		}
 	}
 
-	lv->snapshot = NULL;
-	dm_list_init(&lv->snapshot_segs);
-	dm_list_init(&lv->segments);
-	dm_list_init(&lv->tags);
-	dm_list_init(&lv->segs_using_this_lv);
+	lv_init(lv);
 
 	/* Optional tags */
 	if ((cn = find_config_node(lvn, "tags")) &&
Index: LVM2.2.02.45/lib/metadata/lv_manip.c
===================================================================
--- LVM2.2.02.45.orig/lib/metadata/lv_manip.c	2009-05-19 22:12:14.000000000 +0200
+++ LVM2.2.02.45/lib/metadata/lv_manip.c	2009-05-19 22:14:08.000000000 +0200
@@ -1817,6 +1817,18 @@ char *generate_lv_name(struct volume_gro
 }
 
 /*
+ * Initialize common fields in a structure.
+ */
+void lv_init(struct logical_volume *lv)
+{
+	lv->snapshot = NULL;
+	dm_list_init(&lv->snapshot_segs);
+	dm_list_init(&lv->segments);
+	dm_list_init(&lv->tags);
+	dm_list_init(&lv->segs_using_this_lv);
+}
+
+/*
  * Create a new empty LV.
  */
 struct logical_volume *lv_create_empty(const char *name,
@@ -1873,11 +1885,7 @@ struct logical_volume *lv_create_empty(c
 	lv->minor = -1;
 	lv->size = UINT64_C(0);
 	lv->le_count = 0;
-	lv->snapshot = NULL;
-	dm_list_init(&lv->snapshot_segs);
-	dm_list_init(&lv->segments);
-	dm_list_init(&lv->tags);
-	dm_list_init(&lv->segs_using_this_lv);
+	lv_init(lv);
 
 	if (lvid)
 		lv->lvid = *lvid;
Index: LVM2.2.02.45/lib/metadata/metadata-exported.h
===================================================================
--- LVM2.2.02.45.orig/lib/metadata/metadata-exported.h	2009-05-19 22:14:03.000000000 +0200
+++ LVM2.2.02.45/lib/metadata/metadata-exported.h	2009-05-19 22:14:08.000000000 +0200
@@ -438,6 +438,7 @@ int vg_split_mdas(struct cmd_context *cm
 		  struct volume_group *vg_to);
 
 /* Manipulate LVs */
+void lv_init(struct logical_volume *lv);
 struct logical_volume *lv_create_empty(const char *name,
 				       union lvid *lvid,
 				       uint32_t status,

-- 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]