xref: /freebsd/tools/test/stress2/misc/fdescfs2.sh (revision da20d88599d52667c9cd422632302cf5e2e19938)
1#!/bin/sh
2
3#
4# Copyright (c) 2025 Peter Holm <pho@FreeBSD.org>
5#
6# SPDX-License-Identifier: BSD-2-Clause
7#
8
9# Test scenario description by: Kyle Evans <kevans@FreeBSD.org>
10
11# "panic: mtx_lock() of destroyed mutex 0xffffffff83717540 @ /usr/src/sys/fs/fdescfs/fdesc_vnops.c:151" seen
12
13[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1
14. ../default.cfg
15
16set -u
17
18kldstat | grep -q fdescfs.ko && { kldunload fdescfs.ko && wasloaded=1; }
19while true; do
20	mount | grep -q "on $mntpoint " ||
21		mount -t fdescfs dummy $mntpoint || continue
22	ls $mntpoint > /dev/null
23	if mount | grep -q "on $mntpoint "; then
24		if ! umount $mntpoint; then
25			umount -f $mntpoint || break
26		fi
27	fi
28done > /dev/null 2>&1 &
29
30start=`date +%s`
31while [ $((`date +%s` - start)) -lt 10 ]; do
32	kldstat | grep -q fdescfs.ko &&
33		kldunload fdescfs.ko 2>/dev/null
34	sleep .1
35	kldstat | grep -q fdescfs.ko ||
36		kldload fdescfs.ko
37done
38kill %1
39wait
40mount | grep -q "on $mntpoint " && umount $mntpoint
41sleep .1
42set +u
43[ $wasloaded ] || kldunload fdescfs.ko
44exit 0
45