Currently there are a few ways mkfs options are specified in XFSQA:
authorDavid Disseldorp <ddiss@sgi.com>
Thu, 17 May 2007 15:58:12 +0000 (15:58 +0000)
committerDavid Disseldorp <ddiss@sgi.com>
Thu, 17 May 2007 15:58:12 +0000 (15:58 +0000)
1) suite wide MKFS_OPTIONS are specified before tests are run
e.g.
vimes:/home/fsgqa/kali/xfsqa/xfstests # export MKFS_OPTIONS="-l size=100m"

2) test wide MKFS_OPTIONS are specified during a particular test
e.g. 119
export MKFS_OPTIONS="-l version=2,size=1200b,su=64k"

3) mkfs options are appended by a test at mkfs time
e.g.  083
_scratch_mkfs_xfs -dsize=$fsz,agcount=$ags  >>$seq.full

(4) Another form of appending is just appending to MKFS_OPTIONS directly
e.g.  114:export MKFS_OPTIONS="$MKFS_OPTIONS -i parent=1"
115:export MKFS_OPTIONS="$MKFS_OPTIONS -i paths=1"

Conflicts between mkfs options specified with method 1 & 3 are common.
960377  XFSQA 041, 042 - mkfs fails with large log size MKFS_OPTIONS.

This change means if a mkfs fails where mkfs options have been appended by a test (method 3),
The mkfs is retried using only those options defined by the test.

occurances of method 4 (in test 114 & 115) are also changed to use method 3.

$seq.full logs the fact that a mkfs options conflict has occured.
Merge of master-melb:xfs-cmds:28601a by kenmcd.

  append -i parent mkfs option using _scratch_mkfs_xfs -i parent...
  rather than export MKFS_OPTIONS="$MKFS_OPTIONS -i parent=1.
  this avoids mkfs option conflicts

114
115
common.rc

diff --git a/114 b/114
index 5048a2734e70c8d7af72f1acabae93c1b101e82c..5f7c23db288e06ed4df1d44a364dc81f31be8fb3 100755 (executable)
--- a/114
+++ b/114
@@ -306,8 +306,7 @@ rm -f $here/$seq.full
 echo "mkfs"
 _scratch_mkfs_xfs >>$here/$seq.full 2>&1 \
     || _fail "mkfs scratch failed"
-export MKFS_OPTIONS="$MKFS_OPTIONS -i parent=1"
-_scratch_mkfs_xfs >>$here/$seq.full 2>&1 \
+_scratch_mkfs_xfs -i parent=1 >>$here/$seq.full 2>&1 \
     || _notrun "parent inodes not supported"
 
 echo "mount"
diff --git a/115 b/115
index eca880842b772e09424122937dfd0790abaae38a..8292de8bd6498fad3442aab5cc6d264a64f6baf6 100755 (executable)
--- a/115
+++ b/115
@@ -92,8 +92,7 @@ rm -f $here/$seq.full
 echo "mkfs"
 _scratch_mkfs_xfs >>$here/$seq.full 2>&1 \
     || _fail "mkfs scratch failed"
-export MKFS_OPTIONS="$MKFS_OPTIONS -i paths=1"
-_scratch_mkfs_xfs >>$here/$seq.full 2>&1 \
+_scratch_mkfs_xfs -i paths=1 >>$here/$seq.full 2>&1 \
     || _notrun "i_paths not supported"
 
 echo "mount"
index 8657ed14bdc03f6dcc2f938bf57a0e095000f368..019476f2443519803fc008ca3c5ea22a023b45e8 100644 (file)
--- a/common.rc
+++ b/common.rc
@@ -194,10 +194,25 @@ _scratch_mkfs_options()
 
 _scratch_mkfs_xfs()
 {
+    # extra mkfs options can be added by tests
+    local extra_mkfs_options=$*
+
     _scratch_options mkfs
 
-    $MKFS_XFS_PROG $SCRATCH_OPTIONS $MKFS_OPTIONS $* $SCRATCH_DEV
-    mkfs_status=$?
+    $MKFS_XFS_PROG $SCRATCH_OPTIONS $MKFS_OPTIONS $extra_mkfs_options $SCRATCH_DEV
+    local mkfs_status=$?
+
+    # a mkfs failure may be caused by conflicts between
+    # $MKFS_OPTIONS and $extra_mkfs_options
+
+    if [ $mkfs_status -ne 0 -a ! -z "$extra_mkfs_options" ]; then
+        echo "** mkfs failed with extra mkfs options added to \"$MKFS_OPTIONS\" by test $seq **" \
+            >>$here/$seq.full
+        echo "** attempting to mkfs using only test $seq options: $extra_mkfs_options **" \
+            >>$here/$seq.full
+        $MKFS_XFS_PROG $SCRATCH_OPTIONS $extra_mkfs_options $SCRATCH_DEV
+        mkfs_status=$?
+    fi
 
     if [ "$USE_BIG_LOOPFS" = yes ]; then
        [ -z "$RETAIN_AG_BYTES" ] && RETAIN_AG_BYTES=0