96 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #! /bin/sh
 | |
| # SPDX-License-Identifier: GPL-2.0-or-later
 | |
| # Copyright (c) 2015-2018 Oracle and/or its affiliates. All Rights Reserved.
 | |
| # Copyright (c) International Business Machines  Corp., 2001
 | |
| # Created by: Robbie Williamson (robbiew@us.ibm.com)
 | |
| 
 | |
| TST_CLEANUP="nfs03_cleanup"
 | |
| TST_SETUP="nfs03_setup"
 | |
| TST_TESTFUNC="do_test"
 | |
| 
 | |
| . nfs_lib.sh
 | |
| 
 | |
| DIR_NUM=${DIR_NUM:-"100"}
 | |
| FILE_NUM=${FILE_NUM:-"100"}
 | |
| THREAD_NUM=${THREAD_NUM:-"1"}
 | |
| ORIG_NFSD=
 | |
| 
 | |
| make_subdirs()
 | |
| {
 | |
| 	tst_res TINFO "make '$DIR_NUM' directories"
 | |
| 	for i in $(seq 0 $DIR_NUM); do
 | |
| 		ROD mkdir -p dir$i
 | |
| 	done
 | |
| }
 | |
| 
 | |
| touch_files()
 | |
| {
 | |
| 	for j in $(seq 0 $DIR_NUM); do
 | |
| 		cd dir$j
 | |
| 		for k in $(seq 0 $FILE_NUM); do
 | |
| 			ROD touch file$j$k
 | |
| 		done
 | |
| 		cd ..
 | |
| 	done
 | |
| }
 | |
| 
 | |
| rm_files()
 | |
| {
 | |
| 	for j in $(seq 0 $DIR_NUM); do
 | |
| 		cd dir$j
 | |
| 		for k in $(seq 0 $FILE_NUM); do
 | |
| 			ROD rm -f file$j$k
 | |
| 		done
 | |
| 		cd ..
 | |
| 	done
 | |
| }
 | |
| 
 | |
| do_test()
 | |
| {
 | |
| 	tst_res TINFO "Multiple processes creating and deleting files"
 | |
| 
 | |
| 	tst_res TINFO "creating dir1 subdirectories & files"
 | |
| 	ROD mkdir -p dir1
 | |
| 	cd dir1
 | |
| 	make_subdirs
 | |
| 	touch_files &
 | |
| 	pid1=$!
 | |
| 	cd ..
 | |
| 
 | |
| 	tst_res TINFO "creating dir2 subdirectories & files"
 | |
| 	ROD mkdir -p dir2
 | |
| 	cd dir2
 | |
| 	make_subdirs
 | |
| 	touch_files &
 | |
| 	pid2=$!
 | |
| 
 | |
| 	tst_res TINFO "cd dir1 & removing files"
 | |
| 	cd ../dir1
 | |
| 	wait $pid1
 | |
| 	rm_files &
 | |
| 
 | |
| 	tst_res TINFO "cd dir2 & removing files"
 | |
| 	cd ../dir2
 | |
| 	wait $pid2
 | |
| 	rm_files
 | |
| 
 | |
| 	tst_res TPASS "test done"
 | |
| }
 | |
| 
 | |
| nfs03_setup()
 | |
| {
 | |
| 	nfs_setup
 | |
| 
 | |
| 	tst_res TINFO "Setting server side nfsd count to $THREAD_NUM"
 | |
| 	ORIG_NFSD=$(tst_rhost_run -s -c 'ps -ef | grep -w nfsd | grep -v grep | wc -l')
 | |
| 	tst_rhost_run -s -c "rpc.nfsd $THREAD_NUM"
 | |
| }
 | |
| 
 | |
| nfs03_cleanup()
 | |
| {
 | |
| 	tst_rhost_run -c "rpc.nfsd $ORIG_NFSD"
 | |
| 	nfs_cleanup
 | |
| }
 | |
| 
 | |
| tst_run
 |