diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2014-12-31 00:40:10 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2014-12-31 00:40:10 +0000 |
commit | f40a1cfb98bbad16f8e8d9b1adb4fdc8109a2139 (patch) | |
tree | 32336af699aa988152b67cc30e6781bbf118df61 /contrib/netbsd-tests/lib/libc/string/t_memmem.c | |
parent | 0a205a55e38f6cbcf29e2da1548e934f6fd941be (diff) | |
download | FreeBSD-src-f40a1cfb98bbad16f8e8d9b1adb4fdc8109a2139.zip FreeBSD-src-f40a1cfb98bbad16f8e8d9b1adb4fdc8109a2139.tar.gz |
MFC: r276193
A deadlock in the NFSv4 server with vfs.nfsd.enable_locallocks=1
was reported via email. This was caused by a LOR between the
sleep lock used to serialize the local locking (nfsrv_locklf())
and locking the vnode. I believe this patch fixes the problem
by delaying relocking of the vnode until the sleep lock is
unlocked (nfsrv_unlocklf()). To avoid nfsvno_advlock() having the side
effect of unlocking the vnode, unlocking the vnode was moved to before
the functions that call nfsvno_advlock().
It shouldn't affect the execution of the default case where
vfs.nfsd.enable_locallocks=0.
Diffstat (limited to 'contrib/netbsd-tests/lib/libc/string/t_memmem.c')
0 files changed, 0 insertions, 0 deletions