[lvm-devel] LVM2/lib/metadata lv_manip.c

wysochanski at sourceware.org wysochanski at sourceware.org
Tue Aug 7 18:55:39 UTC 2007


CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	wysochanski at sourceware.org	2007-08-07 18:55:38

Modified files:
	lib/metadata   : lv_manip.c 

Log message:
	A few more cleanups for lvrename of mirrors checkin:
	* add struct lv_names for old/new names
	* replace lv->status & MIRROR checks with lv_is_visible()

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/lv_manip.c.diff?cvsroot=lvm2&r1=1.120&r2=1.121

--- LVM2/lib/metadata/lv_manip.c	2007/08/07 16:57:09	1.120
+++ LVM2/lib/metadata/lv_manip.c	2007/08/07 18:55:38	1.121
@@ -25,6 +25,11 @@
 #include "segtype.h"
 #include "archiver.h"
 
+struct lv_names {
+	const char *old;
+	const char *new;
+};
+
 /*
  * PVs used by a segment of an LV
  */
@@ -1548,9 +1553,9 @@
 static int _rename_cb(struct cmd_context *cmd, struct logical_volume *lv,
 		      void *data)
 {
-	char **names = (char **) data;
+	struct lv_names *lv_names = (struct lv_names *) data;
 
-	return _rename_sub_lv(cmd, lv, names[0], names[1]);
+	return _rename_sub_lv(cmd, lv, lv_names->old, lv_names->new);
 }
 
 /*
@@ -1588,10 +1593,10 @@
 	      const char *new_name)
 {
 	struct volume_group *vg = lv->vg;
-	const char *names[2];
+	struct lv_names lv_names;
 
 	/* rename is not allowed on sub LVs */
-	if ((lv->status & MIRROR_LOG) || (lv->status & MIRROR_IMAGE)) {
+	if (!lv_is_visible(lv)) {
 		log_error("Cannot rename internal LV \"%s\".", lv->name);
 		return 0;
 	}
@@ -1611,9 +1616,9 @@
 		return 0;
 
 	/* rename sub LVs */
-	names[0] = lv->name;
-	names[1] = new_name;
-	if (!_for_each_sub_lv(cmd, lv, _rename_cb, (void *) names))
+	lv_names.old = lv->name;
+	lv_names.new = new_name;
+	if (!_for_each_sub_lv(cmd, lv, _rename_cb, (void *) &lv_names))
 		return 0;
 
 	/* rename main LV */




More information about the lvm-devel mailing list