]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC: r333580
authorrmacklem <rmacklem@FreeBSD.org>
Wed, 6 Jun 2018 22:02:20 +0000 (22:02 +0000)
committerrmacklem <rmacklem@FreeBSD.org>
Wed, 6 Jun 2018 22:02:20 +0000 (22:02 +0000)
commit4a4ab2a82843ba496b969eb11f32aeb2f09c2c63
treeffb487853d0117f875a3850ed34ccf66cc409ef8
parent6659055b919e454ffb41ec4c0bf87f6f8b742141
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
sys/fs/nfsserver/nfs_nfsdstate.c