From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 12294 invoked by alias); 23 Jun 2011 10:53:25 -0000 Received: (qmail 12276 invoked by uid 9664); 23 Jun 2011 10:53:25 -0000 Date: Thu, 23 Jun 2011 10:53:00 -0000 Message-ID: <20110623105325.12274.qmail@sourceware.org> From: mbroz@sourceware.org To: lvm-devel@redhat.com, lvm2-cvs@sourceware.org Subject: LVM2 ./WHATS_NEW lib/metadata/lv_manip.c test/ ... Mailing-List: contact lvm2-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: lvm2-cvs-owner@sourceware.org X-SW-Source: 2011-06/txt/msg00046.txt.bz2 CVSROOT: /cvs/lvm2 Module name: LVM2 Changes by: mbroz@sourceware.org 2011-06-23 10:53:24 Modified files: . : WHATS_NEW lib/metadata : lv_manip.c test : t-lvconvert-mirror.sh Log message: 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 Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/WHATS_NEW.diff?cvsroot=lvm2&r1=1.2024&r2=1.2025 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/lib/metadata/lv_manip.c.diff?cvsroot=lvm2&r1=1.262&r2=1.263 http://sourceware.org/cgi-bin/cvsweb.cgi/LVM2/test/t-lvconvert-mirror.sh.diff?cvsroot=lvm2&r1=1.10&r2=1.11 --- LVM2/WHATS_NEW 2011/06/22 21:31:21 1.2024 +++ LVM2/WHATS_NEW 2011/06/23 10:53:24 1.2025 @@ -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. --- LVM2/lib/metadata/lv_manip.c 2011/06/13 22:28:05 1.262 +++ LVM2/lib/metadata/lv_manip.c 2011/06/23 10:53:24 1.263 @@ -1716,6 +1716,13 @@ 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) --- LVM2/test/t-lvconvert-mirror.sh 2011/06/09 19:38:56 1.10 +++ LVM2/test/t-lvconvert-mirror.sh 2011/06/23 10:53:24 1.11 @@ -248,3 +248,8 @@ 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