]> CyberLeo.Net >> Repos - FreeBSD/stable/9.git/commit
MFC: r232050
authorrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 28 Feb 2012 15:52:01 +0000 (15:52 +0000)
committerrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 28 Feb 2012 15:52:01 +0000 (15:52 +0000)
commit7f6f3b9d9aa2a45205acecbc43dca6691f4f95a4
tree2193fcaef5c9e70f3afa5f252c36ff50e0ff9f1a
parent5f78d964310f98f7eac5e491b3611a8a6fd657b5
MFC: r232050
hrs@ reported a panic to freebsd-stable@ under the subject line
"panic in 8.3-PRERELEASE" on Feb. 22, 2012. This panic was caused
by use of a mix of tsleep() and msleep() calls on the same event
in the new NFS server DRC code. It did "mtx_unlock(); tsleep();"
in two places, which kib@ noted introduced a slight risk that the
wakeup() would occur before the tsleep(), resulting in a 10sec
delay before waking up. This patch fixes the problem by replacing
"mtx_unlock(); tsleep();" with mtx_sleep(..PDROP..). It also
changes a nfsmsleep() call to mtx_sleep() so that the code uses
mtx_sleep() consistently within the file.

git-svn-id: svn://svn.freebsd.org/base/stable/9@232259 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/fs/nfsserver/nfs_nfsdcache.c