fixed dmapi mount filter to work on irix
[xfstests-dev.git] / common.rc
index ab8f641680a442d6b4c24b8fc85706ac755142c3..7f13c27ca36fccf8049fe15361f7dcfa051a8674 100644 (file)
--- a/common.rc
+++ b/common.rc
@@ -93,7 +93,7 @@ umask 022
 
 _mount()
 {
-    $MOUNT_PROG $*
+    $MOUNT_PROG `_mount_ops_filter $*`
 }
 
 _scratch_options()
@@ -147,21 +147,31 @@ _test_options()
        TEST_OPTIONS="$TEST_OPTIONS ${log_opt}logdev=$TEST_LOGDEV"
 }
 
-_mount_ops_minus_o_comma_replace()
+_mount_ops_filter()
 {
-       # irix is fussy about how it is fed its mount options
-       # - multiple -o's are not allowed
-       # - no spaces between comma delimitered options
-       
-       # this sed script replaces all -o's (except the first) with a comma
-       # not required for linux, but won't hurt
-       sed -e 's/[[:space:]]*-o[[:space:]]*/UnIqUe/1; s/[[:space:]]*-o[[:space:]]*/,/g; s/UnIqUe/ -o /1'
+    params="$*"
+    
+    #get mount point to handle dmapi mtpt option correctly
+    last_index=`expr $# - 1`
+    [ $last_index -gt 0 ] && shift $last_index
+    FS_ESCAPED=$1
+    
+    # irix is fussy about how it is fed its mount options
+    # - multiple -o's are not allowed
+    # - no spaces between comma delimitered options
+    # the sed script replaces all -o's (except the first) with a comma
+    # not required for linux, but won't hurt
+    
+    echo $params | sed -e 's/[[:space:]]*-o[[:space:]]*/UnIqUe/1; s/[[:space:]]*-o[[:space:]]*/,/g; s/UnIqUe/ -o /1' \
+        | $PERL_PROG -ne "s#mtpt=[^,|^\n|^\s]*#mtpt=$FS_ESCAPED\1\2#; print;"
+
 }
 
 _scratch_mount_options()
 {
     _scratch_options mount
-    echo $SCRATCH_OPTIONS $MOUNT_OPTIONS $* $SCRATCH_DEV $SCRATCH_MNT | _mount_ops_minus_o_comma_replace
+
+    echo $SCRATCH_OPTIONS $MOUNT_OPTIONS $* $SCRATCH_DEV $SCRATCH_MNT
 }
 
 _scratch_mount()
@@ -172,7 +182,7 @@ _scratch_mount()
 _test_mount()
 {
     _test_options mount
-    _mount -t $FSTYP $(echo $TEST_OPTIONS $MOUNT_OPTIONS $* | _mount_ops_minus_o_comma_replace) $TEST_DEV $TEST_DIR
+    _mount -t $FSTYP $TEST_OPTIONS $TEST_FS_MOUNT_OPTS $* $TEST_DEV $TEST_DIR
 }
 
 _scratch_mkfs_options()