commit edfbaa6878e6f90fe3cf3c65b16bf04973b04f91 Author: Matthew Dillon <dil...@apollo.backplane.com> Date: Sat Dec 8 14:34:51 2018 -0800
kernel - Fix rare vref() assertion * The VREF_TERMINATE flag gets cleared when a vnode is reactivated. However, concurrent LK_SHARED locks on vnodes can race the v_state test. Thus the code cannot assume that VREF_TERMINATE has been cleared when v_state is VS_ACTIVE. To avoid the race, we simply unconditionally clear VREF_TERMINATE on a successful vget(). * Could be reproduced by running blogbench and synth together, both of which generate extreme filesystem-intensive loads. Summary of changes: sys/kern/vfs_lock.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/edfbaa6878e6f90fe3cf3c65b16bf04973b04f91 -- DragonFly BSD source repository