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:
parent
bb685d4e6c
commit
4abb15db5f
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user