git: kernel - Fix "cleaned vnode isn't" panic

Matthew Dillon dillon at crater.dragonflybsd.org
Thu Feb 11 12:47:50 PST 2010


commit 1b7df30abd5674475a59bf1c84b42774101bc3a6
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Thu Feb 11 12:40:45 2010 -0800

    kernel - Fix "cleaned vnode isn't" panic
    
    * Fix the "cleaned vnode isn't" panic.  This panic was occuring due to
      vrecycle() not checking for a vgone*() recursion.
    
      Adjust vrecycle() to check for the recursion.  The recursion can be
      detected by testing the VRECLAIMED flag.
    
    * Under certain circumstances hammer_vop_inactive() was calling
      vrecycle().  This could cause the underlying vnode to be modified
      after it has been destroyed as the recursion returns.
    
    * Add a KKASSERT() in vgone_vxlocked() to detect the condition
      earlier if it occurs again.

Summary of changes:
 sys/kern/vfs_subr.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/1b7df30abd5674475a59bf1c84b42774101bc3a6


-- 
DragonFly BSD source repository





More information about the Commits mailing list