nfs03 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  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. TST_CLEANUP="nfs03_cleanup"
  7. TST_SETUP="nfs03_setup"
  8. TST_TESTFUNC="do_test"
  9. . nfs_lib.sh
  10. DIR_NUM=${DIR_NUM:-"100"}
  11. FILE_NUM=${FILE_NUM:-"100"}
  12. THREAD_NUM=${THREAD_NUM:-"1"}
  13. ORIG_NFSD=
  14. make_subdirs()
  15. {
  16. tst_res TINFO "make '$DIR_NUM' directories"
  17. for i in $(seq 0 $DIR_NUM); do
  18. ROD mkdir -p dir$i
  19. done
  20. }
  21. touch_files()
  22. {
  23. for j in $(seq 0 $DIR_NUM); do
  24. cd dir$j
  25. for k in $(seq 0 $FILE_NUM); do
  26. ROD touch file$j$k
  27. done
  28. cd ..
  29. done
  30. }
  31. rm_files()
  32. {
  33. for j in $(seq 0 $DIR_NUM); do
  34. cd dir$j
  35. for k in $(seq 0 $FILE_NUM); do
  36. ROD rm -f file$j$k
  37. done
  38. cd ..
  39. done
  40. }
  41. do_test()
  42. {
  43. tst_res TINFO "Multiple processes creating and deleting files"
  44. tst_res TINFO "creating dir1 subdirectories & files"
  45. ROD mkdir -p dir1
  46. cd dir1
  47. make_subdirs
  48. touch_files &
  49. pid1=$!
  50. cd ..
  51. tst_res TINFO "creating dir2 subdirectories & files"
  52. ROD mkdir -p dir2
  53. cd dir2
  54. make_subdirs
  55. touch_files &
  56. pid2=$!
  57. tst_res TINFO "cd dir1 & removing files"
  58. cd ../dir1
  59. wait $pid1
  60. rm_files &
  61. tst_res TINFO "cd dir2 & removing files"
  62. cd ../dir2
  63. wait $pid2
  64. rm_files
  65. tst_res TPASS "test done"
  66. }
  67. nfs03_setup()
  68. {
  69. nfs_setup
  70. tst_res TINFO "Setting server side nfsd count to $THREAD_NUM"
  71. ORIG_NFSD=$(tst_rhost_run -s -c 'ps -ef | grep -w nfsd | grep -v grep | wc -l')
  72. tst_rhost_run -s -c "rpc.nfsd $THREAD_NUM"
  73. }
  74. nfs03_cleanup()
  75. {
  76. tst_rhost_run -c "rpc.nfsd $ORIG_NFSD"
  77. nfs_cleanup
  78. }
  79. tst_run