diff options
author | rmacklem <rmacklem@FreeBSD.org> | 2015-12-05 21:38:53 +0000 |
---|---|---|
committer | rmacklem <rmacklem@FreeBSD.org> | 2015-12-05 21:38:53 +0000 |
commit | 11ddbfbc5cbb55d74dd49e7d13251e56cb1dff91 (patch) | |
tree | d8031cefd74dad50d37ce43a720029b712d391f1 /lib/libc/tests/stdio/getdelim_test.c | |
parent | 8e2b2c5eb5f3434f37c9d01effd9dcdb733a8a26 (diff) | |
download | FreeBSD-src-11ddbfbc5cbb55d74dd49e7d13251e56cb1dff91.zip FreeBSD-src-11ddbfbc5cbb55d74dd49e7d13251e56cb1dff91.tar.gz |
MFC: r291150
When the nfsd threads are terminated, the NFSv4 server state
(opens, locks, etc) is retained, which I believe is correct behaviour.
However, for NFSv4.1, the server also retained a reference to the xprt
(RPC transport socket structure) for the backchannel. This caused
svcpool_destroy() to not call SVC_DESTROY() for the xprt and allowed
a socket upcall to occur after the mutexes in the svcpool were destroyed,
causing a crash.
This patch fixes the code so that the backchannel xprt structure is
dereferenced just before svcpool_destroy() is called, so the code
does do an SVC_DESTROY() on the xprt, which shuts down the socket upcall.
Diffstat (limited to 'lib/libc/tests/stdio/getdelim_test.c')
0 files changed, 0 insertions, 0 deletions