mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-02 01:18:26 +03:00
vgconvert is fixed now to work with the changes in metadata area handling - enable the tests.
Add a small fix that preserves pe_start for lvm1 PVs when being converted. (this fix needs to be replaced with something more clever, but let's have this working now)
This commit is contained in:
parent
4a304dc1d8
commit
4b8f066c19
@ -400,7 +400,7 @@ static int _format1_pv_initialise(const struct format_type * fmt,
|
|||||||
|
|
||||||
static int _format1_pv_setup(const struct format_type *fmt,
|
static int _format1_pv_setup(const struct format_type *fmt,
|
||||||
struct physical_volume *pv,
|
struct physical_volume *pv,
|
||||||
struct volume_group *vg __attribute__((unused)))
|
struct volume_group *vg)
|
||||||
{
|
{
|
||||||
return _format1_pv_initialise(fmt, -1, 0, 0, vg->extent_size, 0, 0, pv);
|
return _format1_pv_initialise(fmt, -1, 0, 0, vg->extent_size, 0, 0, pv);
|
||||||
}
|
}
|
||||||
|
@ -296,6 +296,7 @@ int backup_restore_vg(struct cmd_context *cmd, struct volume_group *vg)
|
|||||||
struct pv_list *pvl;
|
struct pv_list *pvl;
|
||||||
struct format_instance *fid;
|
struct format_instance *fid;
|
||||||
struct format_instance_ctx fic;
|
struct format_instance_ctx fic;
|
||||||
|
uint32_t tmp;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* FIXME: Check that the PVs referenced in the backup are
|
* FIXME: Check that the PVs referenced in the backup are
|
||||||
@ -320,11 +321,14 @@ int backup_restore_vg(struct cmd_context *cmd, struct volume_group *vg)
|
|||||||
|
|
||||||
/* Add any metadata areas on the PVs */
|
/* Add any metadata areas on the PVs */
|
||||||
dm_list_iterate_items(pvl, &vg->pvs) {
|
dm_list_iterate_items(pvl, &vg->pvs) {
|
||||||
|
tmp = vg->extent_size;
|
||||||
|
vg->extent_size = 0;
|
||||||
if (!vg->fid->fmt->ops->pv_setup(vg->fid->fmt, pvl->pv, vg)) {
|
if (!vg->fid->fmt->ops->pv_setup(vg->fid->fmt, pvl->pv, vg)) {
|
||||||
log_error("Format-specific setup for %s failed",
|
log_error("Format-specific setup for %s failed",
|
||||||
pv_dev_name(pvl->pv));
|
pv_dev_name(pvl->pv));
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
vg->extent_size = tmp;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!vg_write(vg) || !vg_commit(vg))
|
if (!vg_write(vg) || !vg_commit(vg))
|
||||||
|
@ -133,18 +133,18 @@ check pv_field $dev1 pv_mda_count 2
|
|||||||
|
|
||||||
#COMM 'pv with LVM1 compatible data alignment can be convereted'
|
#COMM 'pv with LVM1 compatible data alignment can be convereted'
|
||||||
#compatible == LVM1_PE_ALIGN == 64k
|
#compatible == LVM1_PE_ALIGN == 64k
|
||||||
#pvcreate --dataalignment 256k $dev1
|
pvcreate --dataalignment 256k $dev1
|
||||||
#vgcreate -s 1m $vg $dev1
|
vgcreate -s 1m $vg $dev1
|
||||||
#vgconvert -M1 $vg
|
vgconvert -M1 $vg
|
||||||
#vgconvert -M2 $vg
|
vgconvert -M2 $vg
|
||||||
#check pv_field $dev1 pe_start 256.00k
|
check pv_field $dev1 pe_start 256.00k
|
||||||
#vgremove $vg
|
vgremove $vg
|
||||||
|
|
||||||
#COMM 'pv with LVM1 incompatible data alignment cannot be convereted'
|
#COMM 'pv with LVM1 incompatible data alignment cannot be convereted'
|
||||||
pvcreate --dataalignment 10k $dev1
|
pvcreate --dataalignment 10k $dev1
|
||||||
vgcreate -s 1m $vg $dev1
|
vgcreate -s 1m $vg $dev1
|
||||||
not vgconvert -M1 $vg
|
not vgconvert -M1 $vg
|
||||||
#vgremove $vg
|
vgremove $vg
|
||||||
|
|
||||||
#COMM 'vgcfgrestore allows pe_start=0'
|
#COMM 'vgcfgrestore allows pe_start=0'
|
||||||
#basically it produces nonsense, but it tests vgcfgrestore,
|
#basically it produces nonsense, but it tests vgcfgrestore,
|
||||||
|
Loading…
Reference in New Issue
Block a user