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
 |