1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-01-03 05:18:29 +03:00

Allow metadata correction even when PVs are missing.

This commit is contained in:
Petr Rockai 2009-06-10 20:17:32 +00:00
parent fe2b3ea0d4
commit 11ee855e40
2 changed files with 4 additions and 1 deletions

View File

@ -1835,6 +1835,7 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
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 @@ static struct volume_group *_vg_read(struct cmd_context *cmd,
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 "

View File

@ -29,7 +29,6 @@ vgreduce --removemissing --force $vg
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