mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
7f436a0f39
Patch fixes these problems: - during the snapshot creation process, it needs create 2 LVs, one is cow, second becomes snapshot. If the code fails in vg_add_snapshot, code lvcreate will not remove LV cow volume. - if max_lv is set and VG contains snapshot, it can happen that during the activation lv_count is temporarily increased over the limit and VG metadata are not properly processed see https://bugzilla.redhat.com/show_bug.cgi?id=490298 - vgcfgrestore alows restore with max_lv set to lower valuer that actual LV count. This later leads to situation that max_lv is completely ignored. - vgck doesn't call vg_validate(). It should at least try:-) Signed-off-by: Milan Broz <mbroz@redhat.com>
70 lines
2.3 KiB
Bash
Executable File
70 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
# Copyright (C) 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
|
|
|
|
# 'Exercise some lvcreate diagnostics'
|
|
|
|
. ./test-utils.sh
|
|
|
|
aux prepare_pvs 2
|
|
aux pvcreate --metadatacopies 0 $dev1
|
|
vgcreate -cn $vg $devs
|
|
|
|
# "lvcreate rejects repeated invocation (run 2 times) (bz178216)"
|
|
lvcreate -n $lv -l 4 $vg
|
|
not lvcreate -n $lv -l 4 $vg
|
|
lvremove -ff $vg/$lv
|
|
|
|
# "lvcreate rejects a negative stripe_size"
|
|
not lvcreate -L 64M -n $lv -i2 --stripesize -4 $vg 2>err;
|
|
grep "^ Negative stripesize is invalid\$" err
|
|
|
|
# 'lvcreate rejects a too-large stripesize'
|
|
not lvcreate -L 64M -n $lv -i2 --stripesize 4294967291 $vg 2>err
|
|
grep "^ Stripe size cannot be larger than 512.00 GB\$" err
|
|
|
|
# 'lvcreate w/single stripe succeeds with diagnostics to stdout'
|
|
lvcreate -L 64M -n $lv -i1 --stripesize 4 $vg >out 2>err
|
|
grep "^ Redundant stripes argument: default is 1\$" out
|
|
grep "^ Ignoring stripesize argument with single stripe\$" out
|
|
lvdisplay $vg
|
|
lvremove -ff $vg
|
|
|
|
# 'lvcreate w/default (64KB) stripe size succeeds with diagnostics to stdout'
|
|
lvcreate -L 64M -n $lv -i2 $vg > out
|
|
grep "^ Using default stripesize" out
|
|
lvdisplay $vg
|
|
check_lv_field_ $vg/$lv stripesize "64.00K"
|
|
lvremove -ff $vg
|
|
|
|
# 'lvcreate rejects an invalid number of stripes'
|
|
not lvcreate -L 64M -n $lv -i129 $vg 2>err
|
|
grep "^ Number of stripes (129) must be between 1 and 128\$" err
|
|
|
|
# 'lvcreate rejects an invalid regionsize (bz186013)'
|
|
not lvcreate -L 64M -n $lv -R0 $vg 2>err
|
|
grep "Non-zero region size must be supplied." err
|
|
|
|
# The case on lvdisplay output is to verify that the LV was not created.
|
|
# 'lvcreate rejects an invalid stripe size'
|
|
not lvcreate -L 64M -n $lv -i2 --stripesize 3 $vg 2>err
|
|
grep "^ Invalid stripe size 3\.00 KB\$" err
|
|
case $(lvdisplay $vg) in "") true ;; *) false ;; esac
|
|
|
|
# Setting max_lv works. (bz490298)
|
|
vgchange -l 4 $vg
|
|
lvcreate -l1 -n $lv1 $vg
|
|
lvcreate -l1 -s -n $lv2 $vg/$lv1
|
|
lvcreate -l1 -n $lv3 $vg
|
|
not lvcreate -l1 -n $lv4 $vg
|
|
vgs $vg
|
|
lvremove -ff $vg
|
|
vgchange -l 0 $vg
|