1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-02-24 17:57:48 +03:00

Fix wrong free_count on imported volume group from pool device

Fix segfault when calling pvcreate on the pool device
This commit is contained in:
Zdenek Kabelac 2008-06-10 14:55:14 +00:00
parent afbf31eba9
commit d9c8469363
3 changed files with 4 additions and 2 deletions

View File

@ -1,5 +1,7 @@
Version 2.02.38 -
=================================
Fix wrong free_count on imported vg from pool device
Fix segfault when calling pvcreate on the pool device
Fix segfault after _free_vginfo by remembering to remove vginfo from list.
Tweak detection of invalid fid after changes to PVs in VG in _vg_read.
Revert assuming precommitted metadata is live when activating (unnecessary).

View File

@ -225,7 +225,7 @@ static int _pool_pv_read(const struct format_type *fmt, const char *pv_name,
if (!(pl = read_pool_disk(fmt, dev, mem, NULL)))
goto_out;
if (!import_pool_pv(fmt, fmt->cmd->mem, NULL, pv, pl))
if (!import_pool_pv(fmt, fmt->cmd->mem, fmt->orphan_vg_name, pv, pl))
goto_out;
pv->fmt = fmt;

View File

@ -36,6 +36,7 @@ int import_pool_vg(struct volume_group *vg, struct dm_pool *mem, struct list *pl
vg->extent_count +=
((pl->pd.pl_blocks) / POOL_PE_SIZE);
vg->free_count = vg->extent_count;
vg->pv_count++;
if (vg->name)
@ -45,7 +46,6 @@ int import_pool_vg(struct volume_group *vg, struct dm_pool *mem, struct list *pl
get_pool_vg_uuid(&vg->id, &pl->pd);
vg->extent_size = POOL_PE_SIZE;
vg->status |= LVM_READ | LVM_WRITE | CLUSTERED | SHARED;
vg->free_count = vg->extent_count;
vg->max_lv = 1;
vg->max_pv = POOL_MAX_DEVICES;
vg->alloc = ALLOC_NORMAL;