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 (robbiew@us.ibm.com) 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 70 tst_res TINFO "cd dir2 & removing files" 71 cd ../dir2 72 wait $pid2 73 rm_files 74 75 tst_res TPASS "test done" 76} 77 78nfs03_setup() 79{ 80 nfs_setup 81 82 tst_res TINFO "Setting server side nfsd count to $THREAD_NUM" 83 ORIG_NFSD=$(tst_rhost_run -s -c 'ps -ef | grep -w nfsd | grep -v grep | wc -l') 84 tst_rhost_run -s -c "rpc.nfsd $THREAD_NUM" 85} 86 87nfs03_cleanup() 88{ 89 tst_rhost_run -c "rpc.nfsd $ORIG_NFSD" 90 nfs_cleanup 91} 92 93. nfs_lib.sh 94tst_run 95