mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-25 01:34:38 +03:00
Update vg_remove_single_* functions to use the removed_pvs list.
Now that we've split vg_remove_single into two routines, in the first routine that only manipulates memory, we move the PVs from the vg->pvs list to the vg->removed_pvs list. Then later, we iterate through this list to write the removed PVs to disk, which removes them from the volume group and places them into the internal ORPHAN VG. Signed-off-by: Dave Wysochanski <dwysocha@redhat.com> Author: Dave Wysochanski <dwysocha@redhat.com>
This commit is contained in:
parent
fd49174b1a
commit
eaefa1ac5d
@ -471,6 +471,7 @@ int remove_lvs_in_vg(struct cmd_context *cmd,
|
||||
int vg_remove_check(struct volume_group *vg)
|
||||
{
|
||||
unsigned lv_count;
|
||||
struct pv_list *pvl, *tpvl;
|
||||
|
||||
if (vg_read_error(vg) || vg_missing_pv_count(vg)) {
|
||||
log_error("Volume group \"%s\" not found, is inconsistent "
|
||||
@ -494,6 +495,10 @@ int vg_remove_check(struct volume_group *vg)
|
||||
if (!archive(vg))
|
||||
return 0;
|
||||
|
||||
dm_list_iterate_items_safe(pvl, tpvl, &vg->pvs) {
|
||||
dm_list_del(&pvl->list);
|
||||
dm_list_add(&vg->removed_pvs, &pvl->list);
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -515,7 +520,7 @@ int vg_remove(struct volume_group *vg)
|
||||
}
|
||||
|
||||
/* init physical volumes */
|
||||
dm_list_iterate_items(pvl, &vg->pvs) {
|
||||
dm_list_iterate_items(pvl, &vg->removed_pvs) {
|
||||
pv = pvl->pv;
|
||||
log_verbose("Removing physical volume \"%s\" from "
|
||||
"volume group \"%s\"", pv_dev_name(pv), vg->name);
|
||||
|
Loading…
Reference in New Issue
Block a user