mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
Fix division by zero if PV with zero PE count is used during vgcfgrestore.
This commit is contained in:
parent
9f60083aff
commit
501a2c04a4
@ -1,5 +1,6 @@
|
|||||||
Version 2.02.96 -
|
Version 2.02.96 -
|
||||||
================================
|
================================
|
||||||
|
Fix division by zero if PV with zero PE count is used during vgcfgrestore.
|
||||||
Add initial support for thin pool lvconvert.
|
Add initial support for thin pool lvconvert.
|
||||||
Fix lvrename for thin volumes (regression in for_each_sub_lv() 2.02.89).
|
Fix lvrename for thin volumes (regression in for_each_sub_lv() 2.02.89).
|
||||||
Fix up-convert when mirror activation is controled by volume_list and tags.
|
Fix up-convert when mirror activation is controled by volume_list and tags.
|
||||||
|
@ -1713,7 +1713,7 @@ static int _text_pv_setup(const struct format_type *fmt,
|
|||||||
pv->pe_start + size_reduction;
|
pv->pe_start + size_reduction;
|
||||||
|
|
||||||
/* Recalculate number of extents that will fit */
|
/* Recalculate number of extents that will fit */
|
||||||
if (!pv->pe_count) {
|
if (!pv->pe_count && vg->extent_size) {
|
||||||
pe_count = (pv->size - pv->pe_start - size_reduction) /
|
pe_count = (pv->size - pv->pe_start - size_reduction) /
|
||||||
vg->extent_size;
|
vg->extent_size;
|
||||||
if (pe_count > UINT32_MAX) {
|
if (pe_count > UINT32_MAX) {
|
||||||
|
@ -111,6 +111,14 @@ pvcreate --norestorefile --uuid $uuid1 "$dev1"
|
|||||||
vgcfgbackup -f $backupfile
|
vgcfgbackup -f $backupfile
|
||||||
not pvcreate --uuid $uuid2 --restorefile $backupfile "$dev2"
|
not pvcreate --uuid $uuid2 --restorefile $backupfile "$dev2"
|
||||||
|
|
||||||
|
# vgcfgrestore of a VG containing a PV with zero PEs (bz #820116)
|
||||||
|
# (use case: one PV in a VG used solely to keep metadata)
|
||||||
|
size_mb=$(($(blockdev --getsz $dev1) / 2048))
|
||||||
|
pvcreate --metadatasize $size_mb $dev1
|
||||||
|
vgcreate $vg1 $dev1
|
||||||
|
vgcfgbackup -f $backupfile
|
||||||
|
vgcfgrestore -f $backupfile $vg1
|
||||||
|
|
||||||
# pvcreate wipes swap signature when forced
|
# pvcreate wipes swap signature when forced
|
||||||
dd if=/dev/zero of="$dev1" bs=1024 count=64
|
dd if=/dev/zero of="$dev1" bs=1024 count=64
|
||||||
mkswap "$dev1"
|
mkswap "$dev1"
|
||||||
|
Loading…
Reference in New Issue
Block a user