aboutsummaryrefslogtreecommitdiff
path: root/stand/efi/liblua32efi/(developers-only)
diff options
context:
space:
mode:
authorMaxim Sobolev <sobomax@FreeBSD.org>2026-10-04 19:24:16 +0000
committerMaxim Sobolev <sobomax@FreeBSD.org>2026-10-04 19:26:41 +0000
commita127039dd0c24bc18b3513322d22fd8fee6724eb (patch)
tree392f34680e0edd90516f404303fc23142957dba4 /stand/efi/liblua32efi/(developers-only)
parent479c98287ee63496bd44d8d64d63c9ec16323e33 (diff)
stress2: add a reproducer for the flush_newblk_dep() "Bad newblk" panicHEADmain
flush_pagedep_deps() drops the soft updates lock to obtain the vnode of a new directory. If its MKDIR_BODY dependency completes in that window, the lookup of the directory's first block in flush_newblk_dep() can find a stale allocindir left behind by a previous owner of the same block, relocated by ffs_reallocblks() and freed, and panic. The test grows interleaved files past UFS_NDADDR to keep clusters being relocated, while other workers create subdirectories in a parent with IN_ENDOFF set, so that ffs_vput_pair() syncs it, and fsync() them to complete the mkdir dependencies. The file system layout and the way the writers put their blocks on disk are arranged so that a new directory takes over a freed block whose dependency is still retained; the details are in the script. With dtrace=1, the test also counts how often this precondition is met, which works on a fixed kernel too. PR: 297976 Reviewed by: kib, pho Tested by: pho Sponsored by: Sippy Software, Inc. Differential revision: https://reviews.freebsd.org/D59356
Diffstat (limited to 'stand/efi/liblua32efi/(developers-only)')
0 files changed, 0 insertions, 0 deletions