1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0-or-later 3 # Copyright (c) 2016-2018 Oracle and/or its affiliates. All Rights Reserved. 4 # Copyright (c) International Business Machines Corp., 2003 5 # 6 # PURPOSE: Runs fsstress over an NFS mount point for a specified amount 7 # of time. The purpose of this test is to stress the NFS kernel 8 # code and possibly the underlying filesystem where the export 9 # resides. A PASS is if the test completes. 10 11 TST_TESTFUNC="do_test" 12 TST_CLEANUP="do_cleanup" 13 . nfs_lib.sh 14 15 THREAD_NUM=${THREAD_NUM:-"2"} 16 17 do_cleanup() 18 { 19 [ -n "$pids" ] && kill -9 $pids 20 nfs_cleanup 21 } 22 23 do_test() 24 { 25 tst_res TINFO "Starting fsstress processes on NFS mounts" 26 27 local n=0 28 local pids 29 for i in $VERSION; do 30 fsstress -l 1 -d $TST_TMPDIR/$i/$n -n 1000 -p $THREAD_NUM -r -c > /dev/null & 31 pids="$pids $!" 32 n=$(( n + 1 )) 33 done 34 35 tst_res TINFO "waiting for pids:$pids" 36 for p in $pids; do 37 wait $p || tst_brk TFAIL "fsstress process failed" 38 tst_res TINFO "fsstress '$p' completed" 39 done 40 pids= 41 42 tst_res TPASS "all fsstress processes completed on '$n' NFS mounts" 43 } 44 45 tst_run 46