mirror of
git://sourceware.org/git/lvm2.git
synced 2025-02-03 17:47:44 +03:00
When resizing LVs, always round in the safe direction, regardless of whether we
were called as lvresize or lvreduce.
This commit is contained in:
parent
34d290b424
commit
a9f4775dc3
25
test/t-lvresize-rounding.sh
Executable file
25
test/t-lvresize-rounding.sh
Executable file
@ -0,0 +1,25 @@
|
|||||||
|
# Copyright (C) 2007-2008 Red Hat, Inc. All rights reserved.
|
||||||
|
#
|
||||||
|
# This copyrighted material is made available to anyone wishing to use,
|
||||||
|
# modify, copy, or redistribute it subject to the terms and conditions
|
||||||
|
# of the GNU General Public License v.2.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program; if not, write to the Free Software Foundation,
|
||||||
|
# Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
|
|
||||||
|
. lib/test
|
||||||
|
|
||||||
|
aux prepare_vg 2
|
||||||
|
|
||||||
|
lvcreate -l 10 -n lv -i2 $vg
|
||||||
|
|
||||||
|
lvextend -l +1 $vg/lv 2>&1 | tee log
|
||||||
|
grep 'down to stripe' log
|
||||||
|
lvresize -l +1 $vg/lv 2>&1 | tee log
|
||||||
|
grep 'down to stripe' log
|
||||||
|
|
||||||
|
lvreduce -f -l -1 $vg/lv 2>&1 | tee log
|
||||||
|
grep 'up to stripe' log
|
||||||
|
lvresize -f -l -1 $vg/lv 2>&1 | tee log
|
||||||
|
grep 'up to stripe' log
|
@ -606,7 +606,8 @@ static int _lvresize(struct cmd_context *cmd, struct volume_group *vg,
|
|||||||
stripesize_extents = 1;
|
stripesize_extents = 1;
|
||||||
|
|
||||||
size_rest = seg_size % (lp->stripes * stripesize_extents);
|
size_rest = seg_size % (lp->stripes * stripesize_extents);
|
||||||
if (size_rest && lp->resize == LV_REDUCE) {
|
/* Round toward the original size. */
|
||||||
|
if (size_rest && lp->extents < lv->le_count) {
|
||||||
log_print("Rounding size (%d extents) up to stripe "
|
log_print("Rounding size (%d extents) up to stripe "
|
||||||
"boundary size for segment (%d extents)",
|
"boundary size for segment (%d extents)",
|
||||||
lp->extents, lp->extents - size_rest +
|
lp->extents, lp->extents - size_rest +
|
||||||
|
Loading…
x
Reference in New Issue
Block a user