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
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]