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:
parent
fe2b3ea0d4
commit
11ee855e40
@ -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 "
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user