]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
btrfs/220: discard=sync support older kernel
authorAnand Jain <anand.jain@oracle.com>
Fri, 13 Aug 2021 01:59:33 +0000 (09:59 +0800)
committerEryu Guan <guaneryu@gmail.com>
Sun, 15 Aug 2021 15:51:28 +0000 (23:51 +0800)
mount option -o discard=sync isn't supported on the older kernel,
make this test case older kernel compatible by checking if the mount
option is supported.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/btrfs/220

index 7207c6967793ca929a3dee9dfcf6c11ed9f08b25..a01b28a6e42f5c1e7fcb323fe0da6ca46ca7a503 100755 (executable)
@@ -263,9 +263,14 @@ test_revertible_options()
        test_roundtrip_mount "nodatasum" "nodatasum" "datasum" "$DEFAULT_OPTS"
 
        test_should_fail "discard=invalid"
-       test_roundtrip_mount "discard" "discard" "discard=sync" "discard"
-       test_roundtrip_mount "discard=async" "discard=async" "discard=sync" "discard"
-       test_roundtrip_mount "discard=sync" "discard" "nodiscard" "$DEFAULT_OPTS"
+       if [ "$enable_discard_sync" = true ]; then
+               test_roundtrip_mount "discard" "discard" "discard=sync" "discard"
+               test_roundtrip_mount "discard=async" "discard=async" "discard=sync" "discard"
+               test_roundtrip_mount "discard=sync" "discard" "nodiscard" "$DEFAULT_OPTS"
+       else
+               test_roundtrip_mount "discard" "discard" "discard" "discard"
+               test_roundtrip_mount "discard" "discard" "nodiscard" "$DEFAULT_OPTS"
+       fi
 
        test_roundtrip_mount "enospc_debug" "enospc_debug" "noenospc_debug" "$DEFAULT_OPTS"
 
@@ -292,6 +297,13 @@ test_revertible_options()
        test_roundtrip_mount "notreelog" "notreelog" "treelog" "$DEFAULT_OPTS"
 }
 
+# Find out if the running kernel supports the -o discard=sync option.
+_scratch_mkfs >/dev/null
+MOUNT_OPTIONS=
+enable_discard_sync=false
+_try_scratch_mount "-o discard=sync" > /dev/null 2>&1 && \
+       { enable_discard_sync=true; _scratch_unmount; }
+
 # real QA test starts here
 _scratch_mkfs >/dev/null