nfsd: destroy percpu stats counters after reply cache shutdown
authorJulian Schroeder <jumaco@amazon.com>
Mon, 23 May 2022 18:52:26 +0000 (18:52 +0000)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 23 May 2022 19:22:17 +0000 (15:22 -0400)
commitfd5e363eac77ef81542db77ddad0559fa0f9204e
treef1cf441a789754d474b448a7b8f0faf7d8b0838c
parent6f6f84aa215f7b6665ccbb937db50860f9ec2989
nfsd: destroy percpu stats counters after reply cache shutdown

Upon nfsd shutdown any pending DRC cache is freed. DRC cache use is
tracked via a percpu counter. In the current code the percpu counter
is destroyed before. If any pending cache is still present,
percpu_counter_add is called with a percpu counter==NULL. This causes
a kernel crash.
The solution is to destroy the percpu counter after the cache is freed.

Fixes: e567b98ce9a4b (“nfsd: protect concurrent access to nfsd stats counters”)
Signed-off-by: Julian Schroeder <jumaco@amazon.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfscache.c