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