]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC: r333580
authorrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 6 Jun 2018 22:18:24 +0000 (22:18 +0000)
committerrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Wed, 6 Jun 2018 22:18:24 +0000 (22:18 +0000)
commit261ca3b0dd0a10f685a60a447b875061e1edde77
treec3510bd1606690587b6995e158183c9a2f5347ab
parenteec3f4a8a63480c20061ab42a7e23052d40fbae7
MFC: r333580
Fix a slow leak of session structures in the NFSv4.1 server.

For a fairly rare case of a client doing an ExchangeID after a hard reboot,
the old confirmed clientid still exists, but some clients use a new
co_verifier. For this case, the server was not freeing up the sessions on
the old confirmed clientid.
This patch fixes this case. It also adds two LIST_INIT() macros, which are
actually no-ops, since the structure is malloc()d with M_ZERO so the pointer
is already set to NULL.
It should have minimal impact, since the only way I could exercise this
code path was by doing a hard power cycle (pulling the plus) on a machine
running Linux with a NFSv4.1 mount on the server.
Originally spotted during testing of the ESXi 6.5 client.

PR: 228497

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