[lvm-devel] LVM2 lib/metadata/metadata.c test/t-unlost-pv.sh
mornfall at sourceware.org
mornfall at sourceware.org
Wed Jun 10 20:17:34 UTC 2009
CVSROOT: /cvs/lvm2
Module name: LVM2
Changes by: mornfall at sourceware.org 2009-06-10 20:17:33
Modified files:
lib/metadata : metadata.c
test : t-unlost-pv.sh
Log message:
Allow metadata correction even when PVs are missing.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/metadata.c.diff?cvsroot=lvm2&r1=1.226&r2=1.227
http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-unlost-pv.sh.diff?cvsroot=lvm2&r1=1.2&r2=1.3
--- LVM2/lib/metadata/metadata.c 2009/06/10 16:14:40 1.226
+++ LVM2/lib/metadata/metadata.c 2009/06/10 20:17:32 1.227
@@ -1835,6 +1835,7 @@
int inconsistent_vgid = 0;
int inconsistent_pvs = 0;
unsigned use_precommitted = precommitted;
+ unsigned saved_handles_missing_pvs = cmd->handles_missing_pvs;
struct dm_list *pvids;
struct pv_list *pvl, *pvl2;
struct dm_list all_pvs;
@@ -2076,11 +2077,14 @@
log_warn("WARNING: Inconsistent metadata found for VG %s - updating "
"to use version %u", vgname, correct_vg->seqno);
+ cmd->handles_missing_pvs = 1;
if (!vg_write(correct_vg)) {
log_error("Automatic metadata correction failed");
vg_release(correct_vg);
+ cmd->handles_missing_pvs = saved_handles_missing_pvs;
return NULL;
}
+ cmd->handles_missing_pvs = saved_handles_missing_pvs;
if (!vg_commit(correct_vg)) {
log_error("Automatic metadata correction commit "
--- LVM2/test/t-unlost-pv.sh 2008/11/10 12:43:35 1.2
+++ LVM2/test/t-unlost-pv.sh 2009/06/10 20:17:33 1.3
@@ -29,7 +29,6 @@
enable_dev $dev1
check
-exit 0 # FIXME, bug demonstration code follows
# try to just change metadata; we expect the new version (with MISSING_PV set
# on the reappeared volume) to be written out to the previously missing PV
vgextend $vg $dev1
More information about the lvm-devel
mailing list