From 73dfa4ae3eac939d84b53285a36c50248b9b8b21 Mon Sep 17 00:00:00 2001 From: Anna Schumaker Date: Mon, 10 Nov 2014 18:06:23 +1100 Subject: [PATCH] common: Fixes for testing NFS over IPv6 When testing NFS over IPv6, the user may set a $TEST_DEV of the form [fe80::42]:/export. The use of square brackets surrounding the IPv6 address is an accepted convention, but grep and awk think that our IPv6 address is actually a regex and tries to evaluate it instead. The result is that xfstests reports our filesystem "is busy or already mounted". This patch fixes the IPv6 problem by telling awk and grep to treat $TEST_DEV as a fixed string rather than a regex. Signed-off-by: Anna Schumaker Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner --- common/rc | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/common/rc b/common/rc index 747cf72c..9f17564e 100644 --- a/common/rc +++ b/common/rc @@ -809,14 +809,16 @@ _df_device() exit 1 fi + # Note that we use "==" here so awk doesn't try to interpret an NFS over + # IPv6 server as a regular expression. $DF_PROG 2>/dev/null | $AWK_PROG -v what=$1 ' - match($1,what) && NF==1 { + ($1==what) && (NF==1) { v=$1 getline print v, $0 exit } - match($1,what) { + ($1==what) { print exit } @@ -1132,10 +1134,12 @@ _require_test() esac # mounted? - if _mount | grep -q $TEST_DEV + # Note that we use -F here so grep doesn't try to interpret an NFS over + # IPv6 server as a regular expression. + if _mount | grep -F -q $TEST_DEV then # if it's mounted, make sure its on $TEST_DIR - if ! _mount | grep $TEST_DEV | grep -q $TEST_DIR + if ! _mount | grep -F $TEST_DEV | grep -q $TEST_DIR then echo "\$TEST_DEV is mounted but not on \$TEST_DIR - aborting" exit 1 -- 2.39.5