mirror of
https://github.com/freebsd/freebsd-src.git
synced 2026-10-28 11:25:21 +01:00
On a soft updates file system, keep a directory at UFS_LINK_MAX with workers removing and recreating subdirectories in it, so that mkdir(2) keeps going through ufs_sync_nlink(), and force-unmount, check and remount the file system in a loop. The workers work relative to the directory: a lookup through the mount point would wait for the unmount on the covered vnode lock and never race with it. Before the fix, the first forced unmount deadlocked with mkdir(2) sleeping in vfs_busy(). With dtrace=1, count the vfs_busy() calls made during an unmount by caller, and the mkdir(2) calls that synced and restarted with ERELOOKUP during an unmount, which shows that the race was hit. Sponsored by: Sippy Software, Inc. Reviewed by: pho Tested by: pho Differential Revision: https://reviews.freebsd.org/D60204 MFC after: 1 month
This directory tree contains tools used for the maintenance and testing of FreeBSD. There is no toplevel Makefile structure since these tools are not meant to be built as part of the standard system, though there may be individual Makefiles in some of the subdirs. Please read the README files in the subdirs for further information.