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