Whamcloud - gitweb
LU-18662 tests: skip fstrim on unsupported devices 51/57851/19
authorAlex Zhuravlev <bzzz@whamcloud.com>
Wed, 22 Jan 2025 06:00:31 +0000 (09:00 +0300)
committerOleg Drokin <green@whamcloud.com>
Wed, 19 Mar 2025 23:33:22 +0000 (23:33 +0000)
if an underlying device doesn't support fstrim, then never try it
again.

Fixes: 6872cf9a36 ("LU-17722 tests: trim tmpfs from wait_delete_completed()")
Signed-off-by: Alex Zhuravlev <bzzz@whamcloud.com>
Change-Id: Ie7e49800ed0161c968e453a531b9701f3459a318
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/57851
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/tests/test-framework.sh

index 2bbc39a..9307da2 100755 (executable)
@@ -2606,6 +2606,17 @@ start() {
        mount_facet ${facet}
        RC=$?
 
+       if [[ $RC == 0 && $facet == *ost* && $OSTDEVBASE == */tmp/* ]]; then
+               varname="${facet}_FSTRIM"
+               if [[ -z ${!varname} ]]; then
+                       if do_facet ${facet} "fstrim -v $mntpt"; then
+                               eval export $varname="yes"
+                       else
+                               eval export $varname="no"
+                       fi
+               fi
+       fi
+
        return $RC
 }
 
@@ -3966,14 +3977,19 @@ wait_destroy_complete () {
 
 fstrim_inram_devs() {
        local i
+       local v
+       local pids
 
        [[ "$(facet_fstype ost1)" = "ldiskfs" ]] || return 0
        [[ $OSTDEVBASE == */tmp/* ]] || return 0
 
        for (( i=1; i <= $OSTCOUNT; i++)); do
-               do_facet ost$i "fstrim -v $(facet_mntpt ost$i)" &
+               v="ost${i}_FSTRIM"
+               [[ ${!v} != "yes" ]] && continue
+               do_facet ost$i "fstrim $(facet_mntpt ost$i)" &
+               pids+=" $!"
        done
-       wait
+       [[ -n $pids ]] && wait $pids
 
        return 0
 }