git: DragonFly_RELEASE_2_8 kernel - Fix NFS stall and likely also x86-64 seg-fault issue
    Matthew Dillon 
    dillon at crater.dragonflybsd.org
       
    Sun Nov 28 09:34:42 PST 2010
    
    
  
commit be22aeec2a5c5fab039ec9f8cbd2e3436851d28d
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Nov 27 22:20:04 2010 -0800
    kernel - Fix NFS stall and likely also x86-64 seg-fault issue
    
    * The nfs node hash code was not MPSAFE due to its use of a global
      hash table.  This could lead to a stall condition due to the
      global hash table losing track of its manual lock.  For now use a
      token to interlock hash table access and replace the manual lock
      with a lockmgr lock.
    
    * This appears to have also fixed the long-standing random seg-fault
      issue with x86-64, where a buildworld loop would seg-fault every once
      in a while for no apparent reason.  /usr/src on my test box has always
      been NFS mounted but was never considered a possible contributor to
      the problem.
    
      If NFS loses track of related nfs nodes or races operations on underlying
      vnodes while expecting their storage to remain stable it is possible
      for a random vnode to become corrupt.  How this could translate to a
      completely random seg-fault is not entirely understood but I surmise
      the unrelated cc1's binary mmap could become corrupt.
    
    Reported-by: Thomas Nikolajsen <thomas.nikolajsen at mail.dk> (nfs issue)
Summary of changes:
 sys/vfs/nfs/nfs_node.c |   63 ++++++++++++++++++++++--------------------------
 1 files changed, 29 insertions(+), 34 deletions(-)
http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/be22aeec2a5c5fab039ec9f8cbd2e3436851d28d
-- 
DragonFly BSD source repository
    
    
More information about the Commits
mailing list