1
0
mirror of git://sourceware.org/git/lvm2.git synced 2025-02-02 13:47:42 +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
linux_minor=$(echo `uname -r` | cut -d'.' -f3 | cut -d'-' -f1)
test $linux_minor -le 32 && skip
kernel_at_least 2 6 33 || skip
aux prepare_devs 2
vgcreate -c n -s 4k $vg $(cat DEVICES)

View File

@ -152,6 +152,23 @@ skip() {
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; }
PATH=$abs_top_builddir/test/lib:$PATH

View File

@ -70,12 +70,10 @@ pvcreate --metadatasize 128k \
$mddev
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
# - 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"
# optimal_io_size=131072, minimum_io_size=65536
pvcreate --metadatasize 128k \
@ -84,7 +82,7 @@ if [ $linux_minor -ge 33 ]; then
fi
# 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
sfdisk $mddev <<EOF
,,83
@ -111,11 +109,11 @@ EOF
# Checking for 'alignment_offset' in sysfs implies Linux >= 2.6.31
# 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
[ -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=0
if [ $alignment_offset -gt 0 ]; then
if [ $alignment_offset -gt 0 ]; then
# default alignment is 1M, add alignment_offset
pv_align=$((1048576+$alignment_offset))B
pvcreate --metadatasize 128k $mddev_p
@ -125,7 +123,7 @@ EOF
fi
# 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
pvcreate -f $dev1
pvcreate -f $dev2