Disable nbmand tests on kernels w/o support

This change allows mountpoint_003_pos and send-c_props
to run on Linux kernels that do not support mandatory
locking. Linux kernel versions greater than or equal to
4.4 no longer support mandatory locking and the test
suite will now account for that.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Tony Hutter <hutter2@llnl.gov>
Reviewed-by: George Melikov <mail@gmelikov.ru>
Signed-off-by: Giuseppe Di Natale <dinatale2@llnl.gov>
Closes #6346 
Closes #6347 
Closes #6362
This commit is contained in:
Giuseppe Di Natale 2017-07-24 11:03:50 -07:00 committed by Brian Behlendorf
parent c89a02a26a
commit 0c656a964d
3 changed files with 39 additions and 3 deletions

View File

@ -40,6 +40,29 @@ if [ -n "$STF_PATH" ]; then
PATH="$STF_PATH" PATH="$STF_PATH"
fi fi
# Linux kernel version comparison function
#
# $1 Linux version ("4.10", "2.6.32") or blank for installed Linux version
#
# Used for comparison: if [ $(linux_version) -ge $(linux_version "2.6.32") ]
#
function linux_version
{
typeset ver="$1"
[[ -z "$ver" ]] && ver=$(uname -r | grep -Eo "^[0-9]+\.[0-9]+\.[0-9]+")
typeset version=$(echo $ver | cut -d '.' -f 1)
typeset major=$(echo $ver | cut -d '.' -f 2)
typeset minor=$(echo $ver | cut -d '.' -f 3)
[[ -z "$version" ]] && version=0
[[ -z "$major" ]] && major=0
[[ -z "$minor" ]] && minor=0
echo $((version * 10000 + major * 100 + minor))
}
# Determine if this is a Linux test system # Determine if this is a Linux test system
# #
# Return 0 if platform Linux, 1 if otherwise # Return 0 if platform Linux, 1 if otherwise

View File

@ -91,8 +91,17 @@ function get_rand_large_recsize
# #
# Functions to toggle on/off properties # Functions to toggle on/off properties
# #
typeset -a binary_props=('atime' 'devices' 'exec' 'nbmand' 'readonly' 'setuid' typeset -a binary_props=('atime' 'devices' 'exec' 'readonly' 'setuid' 'xattr'
'xattr' 'zoned') 'zoned')
if is_linux; then
# Only older kernels support non-blocking mandatory locks
if [[ $(linux_version) -lt $(linux_version "4.4") ]]; then
binary_props+=('nbmand')
fi
else
binary_props+=('nbmand')
fi
function toggle_prop function toggle_prop
{ {

View File

@ -67,11 +67,15 @@ if is_linux; then
set -A args \ set -A args \
"nodev" "dev" \ "nodev" "dev" \
"noexec" "exec" \ "noexec" "exec" \
"mand" "nomand" \
"ro" "rw" \ "ro" "rw" \
"nosuid" "suid" \ "nosuid" "suid" \
"xattr" "noxattr" \ "xattr" "noxattr" \
"atime" "noatime" "atime" "noatime"
# Only older kernels support non-blocking mandatory locks
if [[ $(linux_version) -lt $(linux_version "4.4") ]]; then
args+=("mand" "nomand")
fi
else else
set -A args \ set -A args \
"devices" "/devices/" "nodevices" "/nodevices/" \ "devices" "/devices/" "nodevices" "/nodevices/" \