mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-21 13:34:40 +03:00
vgcreate: initialize new PVs only in first vg_write
When a command does a sequence of vg_write + vg_commit + vg_write + vg_commit, initialization of non-PV devices happens during the first vg_write, and does not need to be repeated by the second vg_write. When creating a lockd VG, this sequence occurs because the VG is first created, then the lockd data is created, then the lockd data is then written to the VG metadata.
This commit is contained in:
parent
cee9ed2244
commit
2ce8ee0214
@ -3011,7 +3011,7 @@ out:
|
||||
int vg_write(struct volume_group *vg)
|
||||
{
|
||||
struct dm_list *mdah;
|
||||
struct pv_to_create *pv_to_create;
|
||||
struct pv_to_create *pv_to_create, *pv_to_create_safe;
|
||||
struct metadata_area *mda;
|
||||
struct lv_list *lvl;
|
||||
int revert = 0, wrote = 0;
|
||||
@ -3067,10 +3067,11 @@ int vg_write(struct volume_group *vg)
|
||||
memlock_unlock(vg->cmd);
|
||||
vg->seqno++;
|
||||
|
||||
dm_list_iterate_items(pv_to_create, &vg->pvs_to_create) {
|
||||
dm_list_iterate_items_safe(pv_to_create, pv_to_create_safe, &vg->pvs_to_create) {
|
||||
if (!_pvcreate_write(vg->cmd, pv_to_create))
|
||||
return 0;
|
||||
}
|
||||
dm_list_del(&pv_to_create->list);
|
||||
}
|
||||
|
||||
/* Write to each copy of the metadata area */
|
||||
dm_list_iterate_items(mda, &vg->fid->metadata_areas_in_use) {
|
||||
|
Loading…
Reference in New Issue
Block a user