DragonFly BSD
DragonFly commits List (threaded) for 2010-02
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: kernel - More readdirplus deadlock avoidance work


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Sat, 13 Feb 2010 09:42:16 -0800 (PST)

commit 668b43c50042037f92a5b34aac99c0c8d6b8dee1
Author: Matthew Dillon <dillon@apollo.backplane.com>
Date:   Sat Feb 13 09:23:33 2010 -0800

    kernel - More readdirplus deadlock avoidance work
    
    * Add cache_nlookup_nonblock() and nfs_nget_nonblock()
    
    * Adjust the readdirplus code to use the new functions.   Basically
      there are too many locks being held by callers and then readdirplus
      goes and tries to acquire (and lock) nodes for the directory elements
      on top of that, leading to deadlocks.
    
      Attempts to order the locks have failed so now we just use a
      non-blocking approach since the readdirplus entries are all
      advisory anyway.

Summary of changes:
 sys/kern/vfs_cache.c    |  128 +++++++++++++++++++++++++++++++++++++++++++-
 sys/sys/namecache.h     |    2 +
 sys/vfs/nfs/nfs_node.c  |  137 ++++++++++++++++++++++++++++++++++++++++++++++-
 sys/vfs/nfs/nfs_vnops.c |   45 ++++++++--------
 sys/vfs/nfs/nfsnode.h   |    1 +
 5 files changed, 288 insertions(+), 25 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/668b43c50042037f92a5b34aac99c0c8d6b8dee1


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]