1
0
mirror of git://sourceware.org/git/lvm2.git synced 2024-12-21 13:34:40 +03:00

Fail allocation if number of extents not divisible by area count

Allocation should fail early if this condition is not met.

Quick fix for https://bugzilla.redhat.com/show_bug.cgi?id=707779
This commit is contained in:
Milan Broz 2011-06-23 10:53:24 +00:00
parent 9e277b9e2c
commit 6adbb95b82
3 changed files with 13 additions and 0 deletions

View File

@ -1,5 +1,6 @@
Version 2.02.86 -
=================================
Reject allocation if number of extents is not divisible by area count.
Fix issue preventing cluster mirror creation.
Disable udev fallback by default and add activation/udev_fallback to lvm.conf.
Call vg_mark_partial_lvs() before VG structure is returned from the cache.

View File

@ -1716,6 +1716,13 @@ static int _allocate(struct alloc_handle *ah,
return 1;
}
if (ah->area_multiple > 1 &&
(ah->new_extents - alloc_state.allocated) % ah->area_count) {
log_error("Number of extents requested (%d) needs to be divisible by %d.",
ah->new_extents - alloc_state.allocated, ah->area_count);
return 0;
}
alloc_state.log_area_count_still_needed = ah->log_area_count;
if (ah->alloc == ALLOC_CONTIGUOUS)

View File

@ -248,3 +248,8 @@ lvconvert -m1 -i1 $vg/$lv1
lvreduce -f -l1 $vg/$lv1
lvextend -f -l10 $vg/$lv1
lvremove -ff $vg/$lv1
# extents must be divisible
lvcreate -l15 -n $lv1 $vg
not lvconvert -m1 --corelog --stripes 2 $vg/$lv1
lvremove -ff $vg/$lv1