xref: /freebsd/tools/test/stress2/misc/rename17.sh (revision 9c6ed9a88d3afb8bc9aba7cf852cc36e03bcd34c)
1*9c6ed9a8SPeter Holm#!/bin/sh
2*9c6ed9a8SPeter Holm
3*9c6ed9a8SPeter Holm#
4*9c6ed9a8SPeter Holm# Copyright (c) 2026 Peter Holm <pho@FreeBSD.org>
5*9c6ed9a8SPeter Holm#
6*9c6ed9a8SPeter Holm# SPDX-License-Identifier: BSD-2-Clause
7*9c6ed9a8SPeter Holm#
8*9c6ed9a8SPeter Holm
9*9c6ed9a8SPeter Holm# Test rename(2) over nfs.
10*9c6ed9a8SPeter Holm# This needs to be in /etc/exports: /mnt	-maproot=root 127.0.0.1
11*9c6ed9a8SPeter Holm
12*9c6ed9a8SPeter Holm# "panic: Lock rename not exclusively locked @ ../../../kern/vfs_subr.c:5878" seen
13*9c6ed9a8SPeter Holm
14*9c6ed9a8SPeter Holm. ../default.cfg
15*9c6ed9a8SPeter Holm
16*9c6ed9a8SPeter Holm[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
17*9c6ed9a8SPeter Holmgrep -q $mntpoint /etc/exports ||
18*9c6ed9a8SPeter Holm	{ echo "$mntpoint missing from /etc/exports"; exit 0; }
19*9c6ed9a8SPeter Holmps -x | grep -v grep | grep -q nfsd || { echo "nfsd is not running"; exit 0; }
20*9c6ed9a8SPeter Holm
21*9c6ed9a8SPeter Holmset -u
22*9c6ed9a8SPeter Holmmp1=$mntpoint
23*9c6ed9a8SPeter Holmmp2=${mntpoint}2
24*9c6ed9a8SPeter Holm
25*9c6ed9a8SPeter Holmmount | grep "$mp2" | grep nfs > /dev/null && umount -f $mp2
26*9c6ed9a8SPeter Holmmount | grep "$mp1" | grep -q /md && umount -f $mp1
27*9c6ed9a8SPeter Holmmdconfig -l | grep -q $mdstart  &&  mdconfig -d -u $mdstart
28*9c6ed9a8SPeter Holm
29*9c6ed9a8SPeter Holmset -e
30*9c6ed9a8SPeter Holmmdconfig -a -t swap -s 2g -u $mdstart
31*9c6ed9a8SPeter Holmnewfs $newfs_flags /dev/md$mdstart > /dev/null
32*9c6ed9a8SPeter Holmmount /dev/md$mdstart $mp1
33*9c6ed9a8SPeter Holmset +e
34*9c6ed9a8SPeter Holm
35*9c6ed9a8SPeter Holmmkdir $mp1/stressX $mp1/stressX.control
36*9c6ed9a8SPeter Holmchmod 777 $mp1/stressX $mp1/stressX.control
37*9c6ed9a8SPeter Holm
38*9c6ed9a8SPeter Holm[ ! -d $mp2 ] &&  mkdir $mp2
39*9c6ed9a8SPeter Holmchmod 777 $mp2
40*9c6ed9a8SPeter Holm
41*9c6ed9a8SPeter Holmmount -t nfs -o tcp -o retrycnt=3 -o soft -o rw \
42*9c6ed9a8SPeter Holm    127.0.0.1:$mp1 $mp2
43*9c6ed9a8SPeter Holm
44*9c6ed9a8SPeter Holmsleep 1
45*9c6ed9a8SPeter Holmexport CTRLDIR=$mp2/stressX.control
46*9c6ed9a8SPeter Holmexport RUNDIR=$mp2/stressX
47*9c6ed9a8SPeter Holmexport renameLOAD=100
48*9c6ed9a8SPeter Holmexport runRUNTIME=5m
49*9c6ed9a8SPeter Holmexport TESTPROGS="
50*9c6ed9a8SPeter Holmtestcases/rename/rename
51*9c6ed9a8SPeter Holmtestcases/swap/swap"
52*9c6ed9a8SPeter Holmsu -m $testuser -c 'cd ..; ./testcases/run/run $TESTPROGS'
53*9c6ed9a8SPeter Holm
54*9c6ed9a8SPeter Holmumount -f $mp2 > /dev/null 2>&1
55*9c6ed9a8SPeter Holmumount -f $mp1 > /dev/null 2>&1
56*9c6ed9a8SPeter Holmmdconfig -d -u $mdstart
57*9c6ed9a8SPeter Holmexit 0
58