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;
|
||||
|
||||
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 "
|
||||
"boundary size for segment (%d extents)",
|
||||
lp->extents, lp->extents - size_rest +
|
||||
|
Loading…
x
Reference in New Issue
Block a user