]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC: r298495
authorrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 7 May 2016 20:09:15 +0000 (20:09 +0000)
committerrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Sat, 7 May 2016 20:09:15 +0000 (20:09 +0000)
commit416db80390023b898999c3827d3ace7f492b2068
tree39a1e250543c1426db92691529c3027261113629
parentc5a43542852284f4d36a7396794764b6b039c2b3
MFC: r298495
Fix a LOR in the NFSv4.1 server.

The ordering of acquisition of the state and session mutexes was
reversed in two cases executed when an NFSv4.1 client created/freed
a session. Since clients will typically do this only when mounting
and dismounting, the likelyhood of causing a deadlock was low but possible.
This can only occur for NFSv4.1 mounts, since the others do not
use sessions.
This was detected while testing the pNFS server/client where the
client crashed during dismounting.
The patch also reorders the unlocks, although that isn't necessary
for correct operation.

git-svn-id: svn://svn.freebsd.org/base/stable/10@299222 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/fs/nfs/nfsrvstate.h
sys/fs/nfsserver/nfs_nfsdstate.c