git: network - Fix a sleep/wakeup race in NFS (server), implemen

看板DFBSD_commit作者時間15年前 (2010/09/24 14:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
commit 8fdd18a45661991db8beaf8faa358aa60df62153 Author: Matthew Dillon <dillon@apollo.backplane.com> Date: Thu Sep 23 22:36:08 2010 -0700 network - Fix a sleep/wakeup race in NFS (server), implement faster keepalives * Fix a sleep/wakeup MP race in the NFS server where the server can receive data but fails to wakeup one of its nfsds. * Set a faster keepalive timeout for NFS client and server. Currently 75 seconds (instead of 2 hours). This solves a problem when connectivity is lost with the server for long enough that the server kills the connection, or if the server fails while processing a nfs request from the client. If the client is stuck waiting for the reply it can wind up waiting for the entire keepalive period before recovering, even if connectivity with the server is re-established. This way the client will proactively determine that the connection is dead within 75 seconds and re-establish it. * The value of the timeout is taken from net.inet.tcp.keepintvl (instead of net.inet.tcp.keepalive), which defaults to 75 seconds at the moment. Summary of changes: sys/vfs/nfs/nfs_socket.c | 15 +++++++++++++-- sys/vfs/nfs/nfs_syscalls.c | 8 ++++++++ 2 files changed, 21 insertions(+), 2 deletions(-) http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/8fdd18a45661991db8beaf8faa358aa60df62153 -- DragonFly BSD source repository
文章代碼(AID): #1Cd3wX3D (DFBSD_commit)