1#! /bin/sh 2# SPDX-License-Identifier: GPL-2.0-or-later 3# Copyright (c) 2015-2018 Oracle and/or its affiliates. All Rights Reserved. 4# Copyright (c) International Business Machines Corp., 2001 5# Created by: Robbie Williamson ([email protected]) 6 7TST_CLEANUP="nfs03_cleanup" 8TST_SETUP="nfs03_setup" 9TST_TESTFUNC="do_test" 10 11DIR_NUM=${DIR_NUM:-"100"} 12FILE_NUM=${FILE_NUM:-"100"} 13THREAD_NUM=${THREAD_NUM:-"1"} 14ORIG_NFSD= 15 16make_subdirs() 17{ 18 tst_res TINFO "make '$DIR_NUM' directories" 19 for i in $(seq 0 $DIR_NUM); do 20 ROD mkdir -p dir$i 21 done 22} 23 24touch_files() 25{ 26 for j in $(seq 0 $DIR_NUM); do 27 cd dir$j 28 for k in $(seq 0 $FILE_NUM); do 29 ROD touch file$j$k 30 done 31 cd .. 32 done 33} 34 35rm_files() 36{ 37 for j in $(seq 0 $DIR_NUM); do 38 cd dir$j 39 for k in $(seq 0 $FILE_NUM); do 40 ROD rm -f file$j$k 41 done 42 cd .. 43 done 44} 45 46do_test() 47{ 48 tst_res TINFO "Multiple processes creating and deleting files" 49 50 tst_res TINFO "creating dir1 subdirectories & files" 51 ROD mkdir -p dir1 52 cd dir1 53 make_subdirs 54 touch_files & 55 pid1=$! 56 cd .. 57 58 tst_res TINFO "creating dir2 subdirectories & files" 59 ROD mkdir -p dir2 60 cd dir2 61 make_subdirs 62 touch_files & 63 pid2=$! 64 65 tst_res TINFO "cd dir1 & removing files" 66 cd ../dir1 67 wait $pid1 68 rm_files & 69 pid3=$! 70 71 tst_res TINFO "cd dir2 & removing files" 72 cd ../dir2 73 wait $pid2 74 rm_files 75 wait $pid3 76 77 tst_res TPASS "test done" 78} 79 80nfs03_setup() 81{ 82 nfs_setup 83 84 tst_res TINFO "Setting server side nfsd count to $THREAD_NUM" 85 ORIG_NFSD=$(tst_rhost_run -s -c 'ps -ef | grep -w nfsd | grep -v grep | wc -l') 86 tst_rhost_run -s -c "rpc.nfsd $THREAD_NUM" 87} 88 89nfs03_cleanup() 90{ 91 tst_rhost_run -c "rpc.nfsd $ORIG_NFSD" 92 nfs_cleanup 93} 94 95. nfs_lib.sh 96tst_run 97