Work around vnode reuse bug resulting in a panic: vop_generic_badop
authorbeck <beck@openbsd.org>
Wed, 4 Sep 2024 17:00:08 +0000 (17:00 +0000)
committerbeck <beck@openbsd.org>
Wed, 4 Sep 2024 17:00:08 +0000 (17:00 +0000)
commit2f0a580519e5905da73da8920619e79611bd591e
tree8f3b61834e8930d41ee46cdb182af58a110fd978
parentc8c95121f802c4f6a63edc7145ec493573589639
Work around vnode reuse bug resulting in a panic: vop_generic_badop

Joel hit this frequently on the go builder, and this was
also found by szykiller

https://syzkaller.appspot.com/bug?extid=58bdde9f7a1a407514a7
https://syzkaller.appspot.com/bug?extid=5779bc64fc4fdd0a5140

This is based on a workaround originally done by visa@ and mbuhl@
but not committed or widely distributed.

Realistically this should be fixed more like the previous attempt
with vdoom, but my attempts to do this at the moment are colliding
with finding all sources of similar races, now that kernel unlocking
is exposing these previously existing bugs

for now, let's put in this ugly workaround

ok deraadt@
sys/ufs/ufs/ufs_ihash.c