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

[lvm-devel] LVM2/lib format_text/archiver.c metadata/metad ...



CVSROOT:	/cvs/lvm2
Module name:	LVM2
Changes by:	prajnoha sourceware org	2011-02-21 12:10:59

Modified files:
	lib/format_text: archiver.c 
	lib/metadata   : metadata.c metadata.h 

Log message:
	Add vg_set_fid function to change VG format instance.
	
	This function also sets a reference to a new VG format instance for all PVs
	that are part of the VG so the PV-VG interconnection is consistent after the
	change.

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/format_text/archiver.c.diff?cvsroot=lvm2&r1=1.39&r2=1.40
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata.c.diff?cvsroot=lvm2&r1=1.426&r2=1.427
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata.h.diff?cvsroot=lvm2&r1=1.231&r2=1.232

--- LVM2/lib/format_text/archiver.c	2011/02/21 12:07:03	1.39
+++ LVM2/lib/format_text/archiver.c	2011/02/21 12:10:58	1.40
@@ -308,10 +308,11 @@
 	fic.type = FMT_INSTANCE_VG | FMT_INSTANCE_MDAS | FMT_INSTANCE_AUX_MDAS;
 	fic.context.vg_ref.vg_name = vg->name;
 	fic.context.vg_ref.vg_id = NULL;
-	if (!(vg->fid = cmd->fmt->ops->create_instance(cmd->fmt, &fic))) {
+	if (!(fid = cmd->fmt->ops->create_instance(cmd->fmt, &fic))) {
 		log_error("Failed to allocate format instance");
 		return 0;
 	}
+	vg_set_fid(vg, fid);
 
 	/*
 	 * Setting vg->old_name to a blank value will explicitly
--- LVM2/lib/metadata/metadata.c	2011/02/21 12:07:03	1.426
+++ LVM2/lib/metadata/metadata.c	2011/02/21 12:10:58	1.427
@@ -3931,6 +3931,16 @@
 	return FAILED_EXIST;
 }
 
+void vg_set_fid(struct volume_group *vg,
+		 struct format_instance *fid)
+{
+	struct pv_list *pvl;
+
+	vg->fid = fid;
+	dm_list_iterate_items(pvl, &vg->pvs)
+		pvl->pv->fid = fid;
+}
+
 static int _convert_key_to_string(const char *key, size_t key_len,
 				  unsigned sub_key, char *buf, size_t buf_len)
 {
--- LVM2/lib/metadata/metadata.h	2011/02/21 12:05:50	1.231
+++ LVM2/lib/metadata/metadata.h	2011/02/21 12:10:59	1.232
@@ -190,6 +190,7 @@
 unsigned mda_is_ignored(struct metadata_area *mda);
 void mda_set_ignored(struct metadata_area *mda, unsigned ignored);
 unsigned mda_locns_match(struct metadata_area *mda1, struct metadata_area *mda2);
+void vg_set_fid(struct volume_group *vg, struct format_instance *fid);
 int fid_add_mda(struct format_instance *fid, struct metadata_area *mda,
 		const char *key, size_t key_len, const unsigned sub_key);
 int fid_add_mdas(struct format_instance *fid, struct dm_list *mdas,


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