DragonFly commits List (threaded) for 2010-11
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
git: DragonFly_RELEASE_2_8 kernel - Fix NFS stall and likely also x86-64 seg-fault issue
commit be22aeec2a5c5fab039ec9f8cbd2e3436851d28d
Author: Matthew Dillon <dillon@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@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
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]