1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-02-08 09:57:55 +03:00

Fix kernel version parsing in tests, use common function.

This commit is contained in:
Milan Broz 2011-06-09 18:58:00 +00:00
parent bb685d4e6c
commit 4abb15db5f
3 changed files with 23 additions and 9 deletions

View File

@ -13,8 +13,7 @@
. lib/test . lib/test
linux_minor=$(echo `uname -r` | cut -d'.' -f3 | cut -d'-' -f1) kernel_at_least 2 6 33 || skip
test $linux_minor -le 32 && skip
aux prepare_devs 2 aux prepare_devs 2
vgcreate -c n -s 4k $vg $(cat DEVICES) vgcreate -c n -s 4k $vg $(cat DEVICES)

View File

@ -152,6 +152,23 @@ skip() {
exit 200 exit 200
} }
kernel_at_least() {
major=$(uname -r |cut -d. -f1)
minor=$(uname -r |cut -d. -f2 | cut -d- -f1)
test $major -gt $1 && return 0
test $major -lt $1 && return 1
test $minor -gt $2 && return 0
test $minor -lt $2 && return 1
test -z "$3" && return 0
minor2=$(uname -r | cut -d. -f3)
test -z "$minor2" && return 0
test $minor2 -ge $3 2>/dev/null && return 0
return 1
}
. lib/paths || { echo >&2 you must run make first; exit 1; } . lib/paths || { echo >&2 you must run make first; exit 1; }
PATH=$abs_top_builddir/test/lib:$PATH PATH=$abs_top_builddir/test/lib:$PATH

View File

@ -70,12 +70,10 @@ pvcreate --metadatasize 128k \
$mddev $mddev
check pv_field $mddev pe_start $pv_align check pv_field $mddev pe_start $pv_align
# Get linux minor version
linux_minor=$(echo `uname -r` | cut -d'.' -f3 | cut -d'-' -f1)
# Test newer topology-aware alignment detection # Test newer topology-aware alignment detection
# - first added to 2.6.31 but not "reliable" until 2.6.33 # - first added to 2.6.31 but not "reliable" until 2.6.33
if [ $linux_minor -ge 33 ]; then if kernel_at_least 2 6 33 ; then
pv_align="1.00m" pv_align="1.00m"
# optimal_io_size=131072, minimum_io_size=65536 # optimal_io_size=131072, minimum_io_size=65536
pvcreate --metadatasize 128k \ pvcreate --metadatasize 128k \
@ -84,7 +82,7 @@ if [ $linux_minor -ge 33 ]; then
fi fi
# partition MD array directly, depends on blkext in Linux >= 2.6.28 # partition MD array directly, depends on blkext in Linux >= 2.6.28
if [ $linux_minor -ge 28 ]; then if kernel_at_least 2 6 28 ; then
# create one partition # create one partition
sfdisk $mddev <<EOF sfdisk $mddev <<EOF
,,83 ,,83
@ -111,11 +109,11 @@ EOF
# Checking for 'alignment_offset' in sysfs implies Linux >= 2.6.31 # Checking for 'alignment_offset' in sysfs implies Linux >= 2.6.31
# but reliable alignment_offset support requires kernel.org Linux >= 2.6.33 # but reliable alignment_offset support requires kernel.org Linux >= 2.6.33
sysfs_alignment_offset=/sys/dev/block/${mddev_maj_min}/${base_mddev_p}/alignment_offset sysfs_alignment_offset=/sys/dev/block/${mddev_maj_min}/${base_mddev_p}/alignment_offset
[ -f $sysfs_alignment_offset -a $linux_minor -ge 33 ] && \ [ -f $sysfs_alignment_offset ] && kernel_at_least 2 6 33 && \
alignment_offset=`cat $sysfs_alignment_offset` || \ alignment_offset=`cat $sysfs_alignment_offset` || \
alignment_offset=0 alignment_offset=0
if [ $alignment_offset -gt 0 ]; then if [ $alignment_offset -gt 0 ]; then
# default alignment is 1M, add alignment_offset # default alignment is 1M, add alignment_offset
pv_align=$((1048576+$alignment_offset))B pv_align=$((1048576+$alignment_offset))B
pvcreate --metadatasize 128k $mddev_p pvcreate --metadatasize 128k $mddev_p
@ -125,7 +123,7 @@ EOF
fi fi
# Test newer topology-aware alignment detection w/ --dataalignment override # Test newer topology-aware alignment detection w/ --dataalignment override
if [ $linux_minor -ge 33 ]; then if kernel_at_least 2 6 33 ; then
cleanup_md cleanup_md
pvcreate -f $dev1 pvcreate -f $dev1
pvcreate -f $dev2 pvcreate -f $dev2