]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
common: Fixes for testing NFS over IPv6
authorAnna Schumaker <Anna.Schumaker@netapp.com>
Mon, 10 Nov 2014 07:06:23 +0000 (18:06 +1100)
committerDave Chinner <david@fromorbit.com>
Mon, 10 Nov 2014 07:06:23 +0000 (18:06 +1100)
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 <Anna.Schumaker@Netapp.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
common/rc

index 747cf72cfc1582064859f02fd859a4a8b5bc1ad2..9f17564e37733c743f623e50b3bdeaee7df97933 100644 (file)
--- 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