git: DragonFly_RELEASE_2_8 kernel - Fix NFS stall and likely als

看板DFBSD_commit作者時間15年前 (2010/11/29 02:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
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
文章代碼(AID): #1CyfZfQe (DFBSD_commit)