From: Chuck Lever chuck.lever@oracle.com
On Fri, 04 Oct 2024 18:04:03 -0400, Olga Kornievskaia wrote:
When multiple FREE_STATEIDs are sent for the same delegation stateid, it can lead to a possible either use-after-tree or counter refcount underflow errors.
In nfsd4_free_stateid() under the client lock we find a delegation stateid, however the code drops the lock before calling nfs4_put_stid(), that allows another FREE_STATE to find the stateid again. The first one will proceed to then free the stateid which leads to either use-after-free or decrementing already zerod counter.
[...]
Applied to nfsd-fixes for v6.12, thanks!
[1/1] nfsd: fix possible badness in FREE_STATEID commit: c88c150a467fcb670a1608e2272beeee3e86df6e
-- Chuck Lever